Linux では、関連付けられたドライバー ファイル オブジェクトから読み取り/書き込みを行うことができ、それらの関数呼び出しはドライバーの読み取り/書き込み関数によって実行されます。Windowsでも同じですか?
ファイルをドライバに関連付けて、このファイルへの読み取り/書き込みによってドライバ機能にアクセスしますか?
(私は Linux でドライバーをプログラミングしてきましたが、今はそれを行うための "Windows の方法" を理解しようとしています。)
Windows のデバイス ドライバーは、Linux のドライバーと同じようには機能しません。Windows ドライバーの全体的な構造を簡単に紹介するには、MSDNを参照してください。ドライバーにはいくつかのクラスがありますが、Linux のように VFS に関連付けられていません。代わりに、デバイスのツリー内のノードとして表されます。
MSDNからのDriverEntry
手順の目的は次のとおりです。
DriverObject パラメーターは、ドライバーのドライバー オブジェクトへのポインターを DriverEntry ルーチンに提供します。これは、I/O マネージャーによって割り当てられます。DriverEntry ルーチンは、ドライバー オブジェクトに、ドライバーの標準ルーチンのエントリ ポイントを入力する必要があります。
これは、I/O マネージャーがプロシージャーを呼び出し、ドライバーが実装するプロシージャーへのポインターを構造体に入力することを意味します。で個々のデバイス オブジェクトを作成し、それらを構造体IoCreateDevice
に格納できます。DRIVER_OBJECT
FILE_DEVICE_DISK
ブロック デバイス スタイルのデバイスを作成するには、タイプ デバイスを作成する必要があると思います。
Microsoft による一連のドライバー作成チュートリアルがあります。2 番目のチュートリアルから始めるのがよいでしょう。