Поделиться через


Функция WdfDeviceWdmDispatchIrpToIoQueue (wdfdevice.h)

[Применимо к KMDF и UMDF]

Метод WdfDeviceWdmDispatchIrpToIoQueue перенаправит 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 типизированных флагов.

Возвращаемое значение

Метод WdfDeviceWdmDispatchIrpToIoQueue возвращает значение NTSTATUS, предоставленное платформой или драйвером в результате обработки IRP. Драйвер должен использовать это возвращаемое значение в качестве возвращаемого значения для функции обратного вызова EvtDeviceWdmIrpDispatch или Функции обратного вызова EvtDeviceWdmIrpPreprocess , которая вызвала WdfDeviceWdmDispatchIrpToIoQueue.

Ошибка проверка возникает, если драйвер KMDF предоставляет недопустимый дескриптор объекта. Если драйвер UMDF предоставляет недопустимый дескриптор, процесс узла драйвера завершается.

Комментарии

Драйвер вызывает WdfDeviceWdmDispatchIrpToIoQueue , чтобы указать целевую очередь для входящего IRP.

Драйвер может вызвать этот метод из процедуры обратного вызова EvtDeviceWdmIrpPreprocess или из обратного вызова EvtDeviceWdmIrpDispatch .

Если драйвер вызывает WdfDeviceWdmDispatchIrpToIoQueue из функции обратного вызова EvtDeviceWdmIrpPreprocess , драйвер должен вызвать IoSkipCurrentIrpStackLocation или IoCopyCurrentIrpStackLocationToNext перед вызовом WdfDeviceWdmDispatchIrpToIoQueue.

Дополнительные сведения об указании очередей для поставщиков irP по мере их поступления см. в разделе Отправка irPs в очереди ввода-вывода.

Требования

Требование Значение
Целевая платформа Универсальное
Минимальная версия 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