次の方法で共有


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
ヘッダー wdfdevice.h (Wdf.h を含む)
ライブラリ Wdf01000.sys (KMDF);WUDFx02000.dll (UMDF)
IRQL <= DISPATCH_LEVEL
DDI コンプライアンス規則 する DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

関連項目

WDF_IO_QUEUE_CONFIG_INIT

WdfIoQueueCreate