私はいくつかのWindows 7のドライバ開発を開始しています。明確でない1つのことは、マネージコードプログラムがドライバーからの情報にアクセスする方法(例えば、デジタルI/Oカードを使用して通信する方法)です。マネージコードからのデバイスドライバとのインターフェイス - P/Invokeなし?
たとえば、ドライバ(カーネルまたはユーザモード)はPCI/PCIeカード上のレジスタへのアクセスを管理しますが、レジスタデータの読み書きは、管理コード(C#、VB .NET)を介して。
私はWin32API呼び出しのようにP/Invokeに頼る必要はありません。
これはメモリ共有(IOCTL)の問題ですか、P/Invokeを「隠す」ために中間管理されたDLLを使用するのですか?
ありがとうございます!
応答をありがとう。私は、管理されていないドライバコードの開発にはうってつけです。あなたが言うように、p/invokeを使わずに「管理対象と非管理対象のギャップを橋渡しする」ことはできません。私はサードパーティのベンダーのハードウェアドライバを常時使用していますので、C#でp/invokeを使用する必要はありません。彼らは常にクラスの中間セットでp/invokeを隠していますか? – ddechow
@ddechow:あなたはP /呼び出しを使用せずにすることによって得ることができるならば、明らかにそれらのドライバのベンダーはあなたのための橋渡しを行い、いくつかのライブラリーを与えています。見つけたい場合は、それらを呼び出すか、提供しているアセンブリのいずれかでリフレクタを使用してください。私はベンダー、ドライバー、ライブラリを知らないので、ドライバーのベンダーがこれをどのようにしたのか、私には分かりません。 – Abel