次の方法で共有


I/O ターゲットの紹介

関数ドライバー、フィルター ドライバー、またはミニポート ドライバーが I/O 要求を受信したとき、ドライバーは自身で要求を処理できる場合もあれば、他のドライバーのサポートを必要とする場合もあります。ドライバーがサポートを必要とする場合、要求を別のドライバーに転送するか、または 1 つ以上の新しい要求を作成して別のドライバーに送信することができます。

カーネル モード ドライバー フレームワークでは、"I/O ターゲット" は関数ドライバー、フィルター ドライバー、またはミニポート ドライバーが I/O 要求を別のドライバーに送信する手段です。多くの場合、これらのドライバーは I/O 要求をドライバー スタック内の次の下位ドライバーに送信します。したがって、フレームワークベースの各関数ドライバー、フィルター ドライバー、およびミニポート ドライバーには、各デバイス用の "ローカル I/O ターゲット" があります。これは、デバイスの次の下位ドライバーです。

ドライバーは、I/O 要求を別のターゲットに送信する必要がある場合があります。別のターゲットとは、異なるドライバー スタックの最上位ドライバーですが、送信側ドライバー スタック内の他のドライバーである場合もまれにあります。したがって、フレームワークは "リモート I/O ターゲット" も提供します。リモート I/O ターゲットは、ローカル I/O ターゲットを除くすべての I/O ターゲットで構成されます。**

各 I/O ターゲットは "I/O ターゲット オブジェクト" で表されます。**各 I/O ターゲット オブジェクトは主にキューです。ドライバーが要求を I/O ターゲットに送信すると、フレームワークは要求を次のドライバーに送信するまでキュー内に保存します。

フレームワークは、"一般 I/O ターゲット"と "特別 I/O ターゲット" の両方をサポートします。**

  • 一般 I/O ターゲットは、すべての関数ドライバー、フィルター ドライバー、およびミニポート ドライバーで使用できますが、デバイス固有の特別なデータ形式はサポートしていません。

  • 特別 I/O ターゲットにより、関数ドライバー、フィルター ドライバー、およびミニポート ドライバーは、特別なターゲット固有のデータ書式設定を必要とする I/O 要求を簡単に送信できます。現在、フレームワークは次の特別 I/O ターゲットをサポートしています。

フレームワークがデバイスのデータ形式をサポートする特別 I/O ターゲットを提供する場合、ドライバーは特別 I/O ターゲットを使用する必要があります。それ以外の場合、ドライバーは一般 I/O ターゲットを使用します。