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 を返します。 その他の戻り値は次のとおりです。

リターン コード 説明
STATUS_INVALID_PARAMETER
入力パラメーターが無効です。
STATUS_INSUFFICIENT_RESOURCES
使用可能なメモリの量が少なすぎます。
STATUS_WDF_BUSY
ドライバーでは、指定した要求の種類にキューが既に割り当てられます。
 

メソッドは、他の 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
Header wdfdevice.h (Wdf.h を含む)
Library Wdf01000.sys (KMDF);WUDFx02000.dll (UMDF)
IRQL <= DISPATCH_LEVEL
DDI コンプライアンス規則 DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

こちらもご覧ください

WDF_IO_QUEUE_CONFIG_INIT

WdfIoQueueCreate