次の方法で共有


IQueueCallbackDeviceIoControl::OnDeviceIoControl メソッド (wudfddi.h)

警告

UMDF 2 は UMDF の最新バージョンであり、UMDF 1 よりも優先されます。 すべての新しい UMDF ドライバーは、UMDF 2 を使用して記述する必要があります。 UMDF 1 には新機能が追加されておらず、新しいバージョンのWindows 10では UMDF 1 のサポートが制限されています。 ユニバーサル Windows ドライバーでは UMDF 2 を使用する必要があります。 詳細については、「UMDF を使用したはじめに」を参照してください。

OnDeviceIoControl メソッドは、アプリケーションが Microsoft Win32 OnDeviceIoControl 関数を介してデバイスに対して特定の操作を実行するときに、デバイス I/O 制御要求を処理するために呼び出されます。

構文

void OnDeviceIoControl(
  [in] IWDFIoQueue   *pWdfQueue,
  [in] IWDFIoRequest *pWdfRequest,
  [in] ULONG         ControlCode,
       SIZE_T        InputBufferSizeInBytes,
       SIZE_T        OutputBufferSizeInBytes
);

パラメーター

[in] pWdfQueue

要求が到着する I/O キュー オブジェクトの IWDFIoQueue インターフェイスへのポインター。

[in] pWdfRequest

フレームワーク要求オブジェクトを表す IWDFIoRequest インターフェイスへのポインター。

[in] ControlCode

実行する特定の操作を識別し、要求に関連付けられているドライバー定義またはシステム定義の I/O 制御コード (IOCTL)。

InputBufferSizeInBytes

要求の入力バッファーのサイズ (バイト単位)。

OutputBufferSizeInBytes

要求の出力バッファーのサイズ (バイト単位)。

戻り値

なし

解説

ドライバーは、IWDFDevice::CreateIoQueue メソッドを呼び出して I/O キューを作成するか、既定の I/O キューを構成するときに、IQueueCallbackDeviceIoControl インターフェイスを登録します。

ドライバーは、すべての I/O キューに対して 1 つの OnDeviceIoControl メソッドを実装することも、I/O キューごとに個別の OnDeviceIoControl メソッドを実装することもできます。

OnDeviceIoControl メソッドは、キューからすべてのデバイス I/O 制御要求の種類を受け取ります。 (要求の種類は、要求のWDF_REQUEST_TYPE列挙型の WdfRequestDeviceIoControl 値によって識別されます)。

キューに関連付けられているドライバーのメソッドとフレームワークが呼び出す方法の詳細については、「 I/O キュー イベント コールバック関数」を参照してください。 OnDeviceIoControl メソッドは、受信した各デバイス I/O 制御要求を処理する必要があります。 UMDF ドライバーが I/O 要求を処理する方法の詳細については、「 I/O 要求の処理」を参照してください。

ドライバーは 、IWDFIoRequest::GetDeviceIoControlParametersIWDFIoRequest::GetInputMemory、および IWDFIoRequest::GetOutputMemory メソッドを呼び出して、要求と入力バッファーと出力バッファーに関する情報を取得できます。

要件

要件
対象プラットフォーム Windows
ヘッダー wudfddi.h (Wudfddi.h を含む)

こちらもご覧ください