EVT_WDF_INTERRUPT_DISABLE função de retorno de chamada (wdfinterrupt.h)
[Aplica-se a KMDF e UMDF]
A função de retorno de chamada de evento EvtInterruptDisable de um driver desabilita uma interrupção de hardware especificada.
Sintaxe
EVT_WDF_INTERRUPT_DISABLE EvtWdfInterruptDisable;
NTSTATUS EvtWdfInterruptDisable(
[in] WDFINTERRUPT Interrupt,
[in] WDFDEVICE AssociatedDevice
)
{...}
Parâmetros
[in] Interrupt
Um identificador para um objeto de interrupção de estrutura.
[in] AssociatedDevice
Um identificador para o objeto de dispositivo de estrutura que o driver passou para WdfInterruptCreate.
Retornar valor
A função de retorno de chamada EvtInterruptDisable deve retornar STATUS_SUCCESS ou outro valor status para o qual NT_SUCCESS(status) é igual a TRUE se a função não encontrar erros. Caso contrário, essa função deve retornar um valor status para o qual NT_SUCCESS(status) é igual a FALSE.
Comentários
Para registrar uma função de retorno de chamada EvtInterruptDisable , o driver deve colocar o endereço da função de retorno de chamada em uma estrutura WDF_INTERRUPT_CONFIG antes de chamar WdfInterruptCreate.
A estrutura chama a função de retorno de chamada EvtInterruptDisable do driver sempre que o dispositivo deixa seu estado de trabalho (D0). Além disso, um driver pode fazer com que a estrutura chame a função de retorno de chamada EvtInterruptDisable chamando WdfInterruptDisable. Observe que a maioria dos drivers baseados em estrutura não deve chamar WdfInterruptDisable, porque a estrutura chama a função de retorno de chamada EvtInterruptDisable do driver sempre que o dispositivo deixa seu estado de trabalho (D0).
Antes de chamar a função de retorno de chamada EvtInterruptDisable , a estrutura eleva o IRQL do processador para o DIRQL do dispositivo e adquire o bloqueio de rotação especificado pelo driver na estrutura WDF_INTERRUPT_CONFIG do objeto de interrupção.
A partir da versão 1.11 do KMDF, o driver pode fornecer tratamento de interrupção de nível passivo. Se o driver solicitou tratamento de interrupção de nível passivo, antes de chamar a função EvtInterruptDisable em IRQL = PASSIVE_LEVEL, a estrutura adquire o bloqueio de interrupção de nível passivo que o driver configurou na estrutura WDF_INTERRUPT_CONFIG do objeto de interrupção.
Antes de chamar a função de retorno de chamada EvtInterruptDisable , a estrutura chama a função de retorno de chamada de evento EvtDeviceD0ExitPreInterruptsDisabled do driver em IRQL = PASSIVE_LEVEL.
Para obter mais informações sobre como lidar com interrupções em drivers baseados em estrutura, consulte Tratamento de interrupções de hardware.
Requisitos
Requisito | Valor |
---|---|
Plataforma de Destino | Universal |
Versão mínima do KMDF | 1.0 |
Versão mínima do UMDF | 2,0 |
Cabeçalho | wdfinterrupt.h (inclua Wdf.h) |
IRQL | (Consulte a seção Observações.) |