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 |
---|---|
|
Um valor MajorFunction inválido foi fornecido. |
|
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) |