WdfDeviceWdmDispatchIrpToIoQueue 函数 (wdfdevice.h)

[适用于 KMDF 和 UMDF]

WdfDeviceWdmDispatchIrpToIoQueue 方法将 IRP 转发到指定的 I/O 队列。

语法

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类型标志的按位

返回值

WdfDeviceWdmDispatchIrpToIoQueue 方法返回框架或驱动程序在处理 IRP 时提供的 NTSTATUS 值。 驱动程序必须将此返回值用作 EvtDeviceWdmIrpDispatchEvtDeviceWdmIrpPreprocess 回调函数,该函数调用 WdfDeviceWdmDispatchIrpToIoQueue

如果 KMDF 驱动程序提供无效的对象句柄,则会发生 bug 检查。 如果 UMDF 驱动程序提供无效句柄,驱动程序主机进程将终止。

注解

驱动程序调用 WdfDeviceWdmDispatchIrpToIoQueue 来指定传入 IRP 的目标队列。

驱动程序可以从其 EvtDeviceWdmIrpPreprocess 回调例程或其 EvtDeviceWdmIrpDispatch 回调调用此方法。

如果驱动程序从 EvtDeviceWdmIrpPreprocess 回调函数中调用 WdfDeviceWdmDispatchIrpToIoQueue, 驱动程序必须在调用 WdfDeviceWdmDispatchIrpToIoQueue之前调用 IoSkipCurrentIrpStackLocationIoCopyCurrentIrpStackLocationToNext

有关在 IRP 到达时指定队列的详细信息,请参阅 将 IRP 调度到 I/O 队列

要求

要求 价值
目标平台 普遍
最低 KMDF 版本 1.11
最低 UMDF 版本 2.17
标头 wdfdevice.h (包括 Wdf.h)
图书馆 Wdf01000.sys(KMDF):WUDFx02000.dll (UMDF)
IRQL <= DISPATCH_LEVEL
DDI 符合性规则 DriverCreate(kmdf)FwdIrpToIoQueueValid(kmdf)

另请参阅

EvtDeviceWdmIrpDispatch

EvtDeviceWdmIrpPreprocess