英語で読む

次の方法で共有


簡単な WDF ドライバーの作成

このトピックでは、カーネル モード ドライバー フレームワーク (KMDF) ドライバーを記述するために必要な最小限の機能について説明します。 UMDF バージョン 2 以降のユーザー モード ドライバー フレームワーク (UMDF) ドライバーを作成するには、同じ最小限の機能が必要です。

新しい KMDF ドライバーか UMDF ドライバーを作成する場合、32 文字以下のドライバー名を選ぶ必要があります。 この長さの制限は wdfglobals.h で定義されています。 ドライバー名が最大長を超えると、ドライバーはロードできません。

各フレームワーク ベースのドライバーは、DriverEntry ルーチンと、オブジェクト固有のイベントが発生したときにフレームワークが呼び出すイベント コールバック関数のセットで構成されます。 たとえば、単純なフレームワーク ベースのドライバーは、次で構成される場合があります。

  • ドライバーが読み込まれるときに呼び出され、WdfDriverCreate を呼び出す DriverEntry ルーチン。

  • フレームワークが、ドライバーがサポートするハードウェア ID と一致するハードウェア識別子 (ID) を持つデバイスの検出を プラグ アンド プレイ (PnP) マネージャーが報告するときに呼び出す EvtDriverDeviceAdd イベント コールバック関数。

    ドライバーがサポートするハードウェア ID を指定するには、INF ファイルを指定します。INF ファイルは、デバイスの 1 つがコンピューターに初めて接続されるときにオペレーティング システムがドライバーをインストールするために使用します。 システムが INF ファイルとハードウェア ID を使用する方法の詳細については、「セットアップでドライバーを選択する方法」をご参照ください。

    ドライバーの EvtDriverDeviceAdd コールバック関数は、WdfDeviceCreate を呼び出して、検出されたデバイスのフレームワーク デバイス オブジェクトを作成します。

  • I/O マネージャーがドライバーに I/O 要求を送信するときにフレームワークが呼び出す、EvtIoDefault コールバック関数などの要求ハンドラー。

    I/O マネージャーがドライバーに I/O 要求を送信すると、フレームワークは要求を I/O キューに配置し、要求ハンドラーを呼び出してドライバーに通知します。

    ドライバーは、デバイスの I/O 要求を受信できるように、デバイスごとに少なくとも 1 つの I/O キューを作成する必要があります。 I/O キューを作成するために、ドライバーは WdfIoQueueCreate を呼び出し、フレームワーク キュー オブジェクトを作成し、デバイスの要求ハンドラーを登録します。

フレームワーク ベースのドライバーの記述の詳細については、「フレームワークを使用してドライバーを開発する」をご参照ください。