Compartilhar via


Função WdfDeviceConfigureWdmIrpDispatchCallback (wdfdevice.h)

[Aplica-se a KMDF e UMDF]

O método WdfDeviceConfigureWdmIrpDispatchCallback registra a função de retorno de chamada EvtDeviceWdmIrpDispatch de um driver.

Sintaxe

NTSTATUS WdfDeviceConfigureWdmIrpDispatchCallback(
  [in]           WDFDEVICE                      Device,
  [in, optional] WDFDRIVER                      Driver,
  [in]           UCHAR                          MajorFunction,
                 PFN_WDFDEVICE_WDM_IRP_DISPATCH EvtDeviceWdmIrpDispatch,
  [in, optional] WDFCONTEXT                     DriverContext
);

Parâmetros

[in] Device

Um identificador para um objeto de dispositivo de estrutura.

[in, optional] Driver

Um identificador para o objeto de driver de estrutura do driver que o driver obteve de uma chamada anterior para WdfDriverCreate ou WdfGetDriver. Esse parâmetro é opcional.

[in] MajorFunction

Um dos seguintes códigos de função principais do IRP: IRP_MJ_DEVICE_CONTROL, IRP_MJ_INTERNAL_DEVICE_CONTROL, IRP_MJ_READ IRP_MJ_WRITE.

EvtDeviceWdmIrpDispatch

Um ponteiro para a função de retorno de chamada EvtDeviceWdmIrpDispatch do driver.

[in, optional] DriverContext

Um ponteiro não tipado para informações de contexto definidas pelo driver que a estrutura passa para a função de retorno de chamada EvtDeviceWdmIrpDispatch do driver. Esse parâmetro é opcional e pode ser NULL.

Retornar valor

Se o método WdfDeviceConfigureWdmIrpDispatchCallback não encontrar erros, ele retornará STATUS_SUCCESS. Os valores de retorno adicionais incluem:

Código de retorno Descrição
STATUS_INVALID_PARAMETER
Um valor MajorFunction inválido foi fornecido.
STATUS_INSUFFICIENT_RESOURCES
Memória insuficiente disponível.

Comentários

Um driver chama o método WdfDeviceConfigureWdmIrpDispatchCallback para registrar uma função de retorno de chamada EvtDeviceWdmIrpDispatch . Em seguida, a estrutura chama EvtDeviceWdmIrpDispatch sempre que recebe um IRP (pacote de solicitação de E/S) que contém um código de função principal IRP que corresponde ao parâmetro MajorFunction desse método.

Um driver normalmente chama WdfDeviceConfigureWdmIrpDispatchCallback de sua função de retorno de chamada EvtDriverDeviceAdd .

Você deve chamar WdfDeviceConfigureWdmIrpDispatchCallback uma vez para cada função MJ para a qual o driver deseja registrar uma função de retorno de chamada. Em outras palavras, várias chamadas são necessárias para interceptar várias funções MJ.

Um driver pode chamar o método WdfDeviceConfigureWdmIrpDispatchCallback por estes motivos:

  • Para examinar um IRP e atribuí-lo a uma fila específica com base em critérios específicos do domínio, por exemplo, direcione todas as E/S associadas a um objeto de arquivo para uma fila específica.
  • Para selecionar com base em uma solicitação individual, a necessidade de chamar a função de retorno de chamada EvtIoInCallerContext .

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

Requisitos

Requisito Valor
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 da DDI DriverCreate(kmdf)

Confira também

EvtDeviceWdmIrpDispatch

WdfDeviceWdmDispatchIrp

WdfDeviceWdmDispatchIrpToIoQueue