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

返回值

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

如果 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)
Library Wdf01000.sys (KMDF) ;WUDFx02000.dll (UMDF)
IRQL <= DISPATCH_LEVEL
DDI 符合性规则 DriverCreate (kmdf) FwdIrpToIoQueueValid (kmdf)

另请参阅

EvtDeviceWdmIrpDispatch

EvtDeviceWdmIrpPreprocess