WdfDeviceWdmDispatchIrpToIoQueue 関数 (wdfdevice.h)

[KMDF と UMDF に適用]

WdfDeviceWdmDispatchIrpToIoQueue メソッドは、指定された I/O キューに IRP を転送します。

構文

NTSTATUS WdfDeviceWdmDispatchIrpToIoQueue(
  [in] WDFDEVICE Device,
  [in] PIRP      Irp,
  [in] WDFQUEUE  Queue,
  [in] ULONG     Flags
);

パラメーター

[in] Device

フレームワーク デバイス オブジェクトへのハンドル。

[in] Irp

IRP 構造体へのポインター。

[in] Queue

フレームワーク キュー オブジェクトへのハンドル。

[in] Flags

WDF_DISPATCH_IRP_TO_IO_QUEUE_FLAGS型指定フラグのビットごとの OR

戻り値

WdfDeviceWdmDispatchIrpToIoQueue メソッドは、フレームワークまたはドライバーが IRP の処理の結果として提供する NTSTATUS 値を返します。 ドライバーは、この戻り値を EvtDeviceWdmIrpDispatch または WdfDeviceWdmDispatchIrpToIoQueue を呼び出した EvtDeviceWdmIrpPreprocess コールバック関数の戻り値として使用する必要があります。

KMDF ドライバーが無効なオブジェクト ハンドルを提供すると、バグ チェックが発生します。 UMDF ドライバーが無効なハンドルを提供した場合、ドライバー ホスト プロセスは終了します。

注釈

ドライバーは 、WdfDeviceWdmDispatchIrpToIoQueue を呼び出して、受信 IRP のターゲット キューを指定します。

ドライバーは、 EvtDeviceWdmIrpPreprocess コールバック ルーチンまたは EvtDeviceWdmIrpDispatch コールバックからこのメソッドを呼び出すことができます。

ドライバーが EvtDeviceWdmIrpPreprocess コールバック関数内から WdfDeviceWdmDispatchIrpToIoQueue を呼び出す場合、ドライバーは WdfDeviceWdmDispatchIrpToIoQueue を呼び出す前に IoSkipCurrentIrpStackLocation または IoCopyCurrentIrpStackLocationToNext を呼び出す必要があります。

IRP の受信時のキューの指定の詳細については、「 I/O キューへの IRP のディスパッチ」を参照してください。

要件

要件
対象プラットフォーム ユニバーサル
最小 KMDF バージョン 1.11
最小 UMDF バージョン 2.17
Header wdfdevice.h (Wdf.h を含む)
Library Wdf01000.sys (KMDF);WUDFx02000.dll (UMDF)
IRQL <= DISPATCH_LEVEL
DDI コンプライアンス規則 DriverCreate(kmdf), FwdIrpToIoQueueValid(kmdf)

こちらもご覧ください

EvtDeviceWdmIrpDispatch

EvtDeviceWdmIrpPreprocess