次の方法で共有


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 キューに対して単一の 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 メソッドを呼び出して、要求と入力バッファーと出力バッファーに関する情報を取得できます。

必要条件

要件 価値
ターゲット プラットフォーム ウィンドウズ
ヘッダー wudfddi.h (Wudfddi.h を含む)

関連項目