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::GetDeviceIoControlParameters、IWDFIoRequest::GetInputMemory、および IWDFIoRequest::GetOutputMemory メソッドを呼び出して、要求と入力バッファーと出力バッファーに関する情報を取得できます。
必要条件
要件 | 価値 |
---|---|
ターゲット プラットフォーム の | ウィンドウズ |
ヘッダー | wudfddi.h (Wudfddi.h を含む) |
関連項目
- IQueueCallbackDeviceIoControl の
- IWDFDevice::CreateIoQueue
- IWDFIoQueue の
- IWDFIoRequest の
- WDF_REQUEST_TYPE