WdfDeviceConfigureRequestDispatching 関数 (wdfdevice.h)
[KMDF と UMDF に適用]
WdfDeviceConfigureRequestDispatching メソッドを使用すると、フレームワークは、指定した種類の I/O 要求を指定した I/O キューにキューに入れます。
構文
NTSTATUS WdfDeviceConfigureRequestDispatching(
[in] WDFDEVICE Device,
[in] WDFQUEUE Queue,
[in] WDF_REQUEST_TYPE RequestType
);
パラメーター
[in] Device
フレームワーク デバイス オブジェクトにハンドルを提供します。
[in] Queue
フレームワーク キュー オブジェクトにハンドルを提供します。
[in] RequestType
キューに登録する要求の種類を識別する WDF_REQUEST_TYPE型指定された列挙子を提供します。 唯一の有効な列挙子は次のとおりです。
WdfRequestTypeCreate
WdfRequestTypeRead の
WdfRequestTypeWrite の
WdfRequestTypeDeviceControl の
WdfRequestTypeDeviceControlInternal
戻り値
操作が成功した場合、メソッドはSTATUS_SUCCESSを返します。 その他の戻り値は次のとおりです。
リターン コード | 形容 |
---|---|
|
入力パラメーターが無効です。 |
|
使用可能なメモリの量が少なすぎます。 |
|
ドライバーは、指定した要求の種類にキューを既に割り当て済みです。 |
このメソッドは、他NTSTATUS 値を返す場合があります。
ドライバーが無効なオブジェクト ハンドルを提供すると、バグ チェックが発生します。
備考
WdfDeviceConfigureRequestDispatching 呼び出すたびに、1 つの要求の種類が指定されます。 1 つの I/O キューで複数の種類の要求 (読み取り要求や書き込み要求など) を受信する場合、ドライバーは 1 つの I/O キュー WdfDeviceConfigureRequestDispatching 複数回呼び出すことができます。
WdfDeviceConfigureRequestDispatching の詳細については、「I/O キュー の作成と I/O キュー の管理を参照してください。
例
次のコード例では、WDF_IO_QUEUE_CONFIG 構造体を初期化し、I/O キューを作成してから、書き込み要求を受信するようにキューを構成します。
WDF_IO_QUEUE_CONFIG queueConfig;
WDFQUEUE WriteQueue;
WDF_IO_QUEUE_CONFIG_INIT(
&queueConfig,
WdfIoQueueDispatchSequential
);
queueConfig.EvtIoWrite = MyEvtIoWrite;
status = WdfIoQueueCreate(
Device,
&queueConfig,
WDF_NO_OBJECT_ATTRIBUTES,
&WriteQueue
);
if(!NT_SUCCESS(status)) {
return status;
}
status = WdfDeviceConfigureRequestDispatching(
Device,
WriteQueue,
WdfRequestTypeWrite
);
if(!NT_SUCCESS(status)) {
return status;
}
必要条件
要件 | 価値 |
---|---|
ターゲット プラットフォーム の | 万国 |
最小 KMDF バージョン | 1.0 |
UMDF の最小バージョン を する | 2.0 |
ヘッダー | wdfdevice.h (Wdf.h を含む) |
ライブラリ | Wdf01000.sys (KMDF);WUDFx02000.dll (UMDF) |
IRQL | <= DISPATCH_LEVEL |
DDI コンプライアンス規則 を する | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |