Partilhar via


Função WdfDeviceWdmDispatchIrpToIoQueue (wdfdevice.h)

[Aplica-se a KMDF e UMDF]

O método WdfDeviceWdmDispatchIrpToIoQueue encaminha o IRP para uma fila de E/S especificada.

Sintaxe

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

Parâmetros

[in] Device

Um identificador para um objeto de dispositivo de estrutura.

[in] Irp

Um ponteiro para uma estrutura IRP.

[in] Queue

Um identificador para um objeto de fila de estrutura.

[in] Flags

Um OR bit a bit de sinalizadores tipo WDF_DISPATCH_IRP_TO_IO_QUEUE_FLAGS.

Valor de retorno

O método WdfDeviceWdmDispatchIrpToIoQueue retorna um valor NTSTATUS que a estrutura ou o driver fornece como resultado do processamento do IRP. O driver deve usar esse valor retornado como o valor retornado do EvtDeviceWdmIrpDispatch ou a função de retorno de chamada EvtDeviceWdmIrpPreprocess chamada WdfDeviceWdmDispatchIrpToIoQueue.

Uma verificação de bug ocorre se um driver KMDF fornece um identificador de objeto inválido. Se um driver UMDF fornecer um identificador inválido, o processo de host do driver será encerrado.

Observações

Um driver chama WdfDeviceWdmDispatchIrpToIoQueue para especificar uma fila de destino para um IRP de entrada.

O driver pode chamar esse método de seu EvtDeviceWdmIrpPreprocess rotina de retorno de chamada ou de sua EvtDeviceWdmIrpDispatch retorno de chamada.

Se o driver chamar WdfDeviceWdmDispatchIrpToIoQueue de dentro de uma função de retorno de chamada EvtDeviceWdmIrpPreprocess, O driver deve chamar IoSkipCurrentIrpStackLocation ou IoCopyCurrentIrpStackLocationToNext antes de chamar WdfDeviceWdmDispatchIrpToIoQueue.

Para obter mais informações sobre como especificar filas para IRPs à medida que chegam, consulte Expedição de IRPs para Filas de E/S.

Requisitos

Requisito Valor
da Plataforma de Destino Universal
versão mínima do KMDF 1.11
versão mínima do UMDF 2.17
cabeçalho wdfdevice.h (inclua Wdf.h)
Biblioteca Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL <= DISPATCH_LEVEL
regras de conformidade de DDI DriverCreate(kmdf), FwdIrpToIoQueueValid(kmdf)

Consulte também

EvtDeviceWdmIrpDispatch

EvtDeviceWdmIrpPreprocess