UMDF での一般 I/O ターゲット

警告

UMDF 2 は UMDF の最新バージョンであり、UMDF 1 に取って代わるものです。 すべての新しい UMDF ドライバーは、UMDF 2 を使用して記述する必要があります。 UMDF 1 には新機能が追加されておらず、Windows 10 の新しいバージョンでは UMDF 1 のサポートが制限されています。 ユニバーサル Windows ドライバーでは、UMDF 2 を使用する必要があります。

アーカイブされた UMDF 1 サンプルは、Windows 11, バージョン 22H2 - 2022 年 5 月 ドライバー サンプル アップデートでご確認いただけます。

詳しくは、UMDFの概要をご覧ください。

一般 I/O ターゲットは、ローカルリモートのいずれかであり、USB リクエストブロックなどの特殊なデバイス固有のデータ形式をサポートしない I/O ターゲットです。 ドライバーは、一般 I/O ターゲットにデータを送信する前に、I/O ターゲットとデバイスが解釈できる形式で書き込みバッファーにデータを配置する必要があります。 同様に、ドライバーが一般 I/O ターゲットからデータを読み取る場合、ドライバーは、ターゲットから受信したデータ バッファーの内容を解釈できる必要があります。

ローカル I/O ターゲット
ドライバーは多くの場合、ドライバー スタック内の次の下位ドライバーに I/O リクエストを送信します。 そのため、各 UMDF ベースのドライバーには 、デバイスの次の下位ドライバーである各デバイスの デフォルト I/O ターゲット があります。 最下位レベルの UMDF ベースのドライバーのデフォルト I/O ターゲットは、カーネル モード のリフレクターです。

場合によっては、UMDF ベースのドライバーは、ファイルやネットワーク ソケットなどのファイル ハンドル ベースの I/O ターゲットに I/O リクエストを送信する必要があります。 そのため、フレームワークは、ファイル ハンドルベースの I/O ターゲット オブジェクトも提供します。

UMDF ベースのドライバーはこれらのターゲットを使用してドライバー スタックがサポートするデバイスに I/O 要求を送信するため、既定の I/O ターゲットとファイル ハンドル ベースの I/O ターゲットはどちらもローカル I/O ターゲットと呼ばれます

リモート I/O ターゲット
場合によっては、ドライバーが別のドライバー スタックに I/O リクエストを送信する必要があります。 そのため、フレームワークは、ローカル I/O ターゲットを除くすべての I/O ターゲットで構成されるリモート I/O ターゲットも提供します。

リモート I/O ターゲットは、ドライバー スタックがサポートしていないデバイス、そのデバイス上のファイル、またはそのデバイスの デバイス インターフェイス である可能性があります。

次のセクションでは、一般 I/O ターゲットを初期化して使用する方法について説明します。