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::GetDeviceIoControlParameters、 IWDFIoRequest::GetInputMemory、および IWDFIoRequest::GetOutputMemory メソッドを呼び出して、要求と入力バッファーと出力バッファーに関する情報を取得できます。
要件
要件 | 値 |
---|---|
対象プラットフォーム | Windows |
ヘッダー | wudfddi.h (Wudfddi.h を含む) |