次の方法で共有


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

ドライバーで一般 I/O ターゲットを初期化するための手順は、その I/O ターゲットがローカルかリモートかによって異なります。

ローカル I/O ターゲットの初期化

ローカル I/O ターゲットには、デバイスの既定の I/O ターゲットとファイル ハンドル ベースの I/O ターゲットが含まれます。

フレームワークは、ドライバーが IWDFDriver::CreateDevice メソッドを呼び出したときに、デバイスに対するドライバーの既定の I/O ターゲットを初期化します。ドライバーは、IWDFDevice::GetDefaultIoTarget メソッドを呼び出して IWDFIoTarget インターフェイスを取得します。このインターフェイスを使用してデバイスの既定の I/O ターゲットにアクセスできます。

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

UMDF ドライバーで I/O 要求をハンドル ベースのインターフェイス (ネットワーク ソケット インターフェイスなど) に送信しなければならない場合は、ファイル ハンドル ベースの I/O ターゲット オブジェクトを作成する必要があります。ドライバーでファイル ハンドル ベースの I/O ターゲット オブジェクトを作成するには、次の手順を実行します。

  1. デバイスの IWDFDevice インターフェイスの QueryInterface メソッドを呼び出して、IWDFFileHandleTargetFactory インターフェイスへのポインターを取得します。

  2. Win32 関数の CreateFileCreateNamedPipe、または socket を呼び出して、ファイル、名前付きパイプ、またはソケットの Win32 ハンドルを取得します。

  3. IWDFFileHandleTargetFactory::CreateFileHandleTarget メソッドを呼び出して、ファイル、パイプ、またはソケットのファイル ハンドル ベースの I/O ターゲット オブジェクトを作成します。

IWDFFileHandleTargetFactory インターフェイスと Win32 ハンドルを取得してファイル ハンドル ベースの I/O ターゲット オブジェクトを作成する方法のコード例については、「IWDFFileHandleTargetFactory::CreateFileHandleTarget」のコード例を参照してください。

ファイル ハンドル ベースの I/O ターゲットが作成されたら、ドライバーからその I/O ターゲットに I/O 要求を送信できます。

リモート I/O ターゲットの初期化

ドライバーでリモート I/O ターゲットを使用するには、まず、リモート ターゲット オブジェクトを作成して、ターゲットを開く必要があります。以下に手順を示します。

  1. IWDFDevice2::CreateRemoteTarget を呼び出してリモート ターゲット オブジェクトを作成します。

  2. IWDFRemoteTarget::OpenFileByName (ファイルの場合) または IWDFRemoteTarget::OpenRemoteInterface (デバイス インターフェイスの場合) を呼び出して、I/O 操作のターゲットを開きます。