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 da 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 o do driver EvtDeviceWdmIrpDispatch função de retorno de chamada.

[in, optional] DriverContext

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

Valor de retorno

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
Foi fornecido um valor de MajorFunction inválido.
STATUS_INSUFFICIENT_RESOURCES
Memória insuficiente estava disponível.

Observações

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 em uma solicitação individual, é necessário chamar a função de retorno de chamada EvtIoInCallerContext.

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)

Consulte também

EvtDeviceWdmIrpDispatch

WdfDeviceWdmDispatchIrp

WdfDeviceWdmDispatchIrpToIoQueue