2

Linux では、関連付けられたドライバー ファイル オブジェクトから読み取り/書き込みを行うことができ、それらの関数呼び出しはドライバーの読み取り/書き込み関数によって実行されます。Windowsでも同じですか?

ファイルをドライバに関連付けて、このファイルへの読み取り/書き込みによってドライバ機能にアクセスしますか?

(私は Linux でドライバーをプログラミングしてきましたが、今はそれを行うための "Windows の方法" を理解しようとしています。)

4

1 に答える 1

5

Windows のデバイス ドライバーは、Linux のドライバーと同じようには機能しません。Windows ドライバーの全体的な構造を簡単に紹介するには、MSDNを参照してください。ドライバーにはいくつかのクラスがありますが、Linux のように VFS に関連付けられていません。代わりに、デバイスのツリー内のノードとして表されます。

MSDNからのDriverEntry手順の目的は次のとおりです。

DriverObject パラメーターは、ドライバーのドライバー オブジェクトへのポインターを DriverEntry ルーチンに提供します。これは、I/O マネージャーによって割り当てられます。DriverEntry ルーチンは、ドライバー オブジェクトに、ドライバーの標準ルーチンのエントリ ポイントを入力する必要があります。

これは、I/O マネージャーがプロシージャーを呼び出し、ドライバーが実装するプロシージャーへのポインターを構造体に入力することを意味します。で個々のデバイス オブジェクトを作成し、それらを構造体IoCreateDeviceに格納できます。DRIVER_OBJECT

FILE_DEVICE_DISKブロック デバイス スタイルのデバイスを作成するには、タイプ デバイスを作成する必要があると思います。

Microsoft による一連のドライバー作成チュートリアルがあります。2 番目のチュートリアルから始めるのがよいでしょう。

于 2012-11-15T12:55:51.417 に答える