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 |
---|---|
|
Foi fornecido um valor de MajorFunction inválido. |
|
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.