一般 I/O ターゲットの初期化

フレームワークは、ドライバーが WdfDeviceCreate を呼び出したときに、デバイスに対するドライバーのローカル I/O ターゲットを初期化します。デバイスのローカル I/O ターゲットのハンドルを取得するには、ドライバーで WdfDeviceGetIoTarget を呼び出します。

ほとんどのドライバーは、自身のローカル I/O ターゲットにのみ要求を送信します。

デバイスのリモート I/O ターゲットを初期化するには、ドライバーで次の処理を行う必要があります。

  1. WdfIoTargetCreate を呼び出して I/O ターゲット オブジェクトを作成します。

  2. WdfIoTargetOpen を呼び出して I/O ターゲットを開き、ドライバーが要求を送信できるようにします。

ドライバーは、通常、WdfIoTargetOpen を呼び出すときに、オブジェクト名を表す Unicode 文字列を指定してリモート I/O ターゲットを識別します。この名前では、デバイス、 ファイル、またはデバイスのインターフェイスを識別できます。フレームワークは、このオブジェクト名をサポートするドライバー スタックの最上位ドライバーに I/O 要求を送信します。

ドライバーが Windows Driver Model (WDM) DEVICE_OBJECT 構造体へのポインターを指定して、リモート I/O ターゲットを識別することはめったにありません。このポインターは、呼び出し元ドライバー スタック内の別のドライバーを識別します。フレームワークベースのドライバーは、多くの場合、他のドライバーの DEVICE_OBJECT 構造にはアクセスできないため、この方法はほとんど使用されません。