Función WdfDeviceWdmDispatchIrpToIoQueue (wdfdevice.h)

[Se aplica a KMDF y UMDF]

El método WdfDeviceWdmDispatchIrpToIoQueue reenvía el IRP a una cola de E/S especificada.

Sintaxis

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

Parámetros

[in] Device

Identificador de un objeto de dispositivo de marco.

[in] Irp

Puntero a una estructura IRP.

[in] Queue

Identificador de un objeto de cola de marco.

[in] Flags

Or bit a bit de marcas con tipo WDF_DISPATCH_IRP_TO_IO_QUEUE_FLAGS.

Valor devuelto

El método WdfDeviceWdmDispatchIrpToIoQueue devuelve un valor NTSTATUS que proporciona el marco o el controlador como resultado del procesamiento del IRP. El controlador debe usar este valor devuelto como valor devuelto para evtDeviceWdmIrpDispatch o la función de devolución de llamada EvtDeviceWdmIrpPreprocess que llamó a WdfDeviceWdmDispatchIrpToIoQueue.

Se produce una comprobación de errores si un controlador KMDF proporciona un identificador de objeto no válido. Si un controlador UMDF proporciona un identificador no válido, el proceso de host del controlador finaliza.

Comentarios

Un controlador llama a WdfDeviceWdmDispatchIrpToIoQueue para especificar una cola de destino para un IRP entrante.

El controlador puede llamar a este método desde su rutina de devolución de llamada EvtDeviceWdmIrpPreprocess o desde su devolución de llamada EvtDeviceWdmIrpDispatch .

Si el controlador llama a WdfDeviceWdmDispatchIrpToIoQueue desde dentro de una función de devolución de llamada EvtDeviceWdmIrpPreprocess , el controlador debe llamar a IoSkipCurrentIrpStackLocation o IoCopyCurrentIrpStackLocationToNext antes de llamar a WdfDeviceWdmDispatchIrpToIoQueue.

Para obtener más información sobre cómo especificar colas para irP a medida que llegan, consulte Envío de IRP a colas de E/S.

Requisitos

Requisito Value
Plataforma de destino Universal
Versión mínima de KMDF 1.11
Versión mínima de UMDF 2.17
Encabezado wdfdevice.h (incluir Wdf.h)
Library Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL <= DISPATCH_LEVEL
Reglas de cumplimiento de DDI DriverCreate(kmdf), FwdIrpToIoQueueValid(kmdf)

Consulte también

EvtDeviceWdmIrpDispatch

EvtDeviceWdmIrpPreprocess