EVT_WDF_INTERRUPT_ENABLE função de retorno de chamada (wdfinterrupt.h)
[Aplica-se a KMDF e UMDF]
A função de retorno de chamada de evento EvtInterruptEnable do driver permite uma interrupção de hardware especificada.
Sintaxe
EVT_WDF_INTERRUPT_ENABLE EvtWdfInterruptEnable;
NTSTATUS EvtWdfInterruptEnable(
[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 do dispositivo de estrutura que o driver passou para WdfInterruptCreate.
Valor de retorno
A função de retorno de chamada EvtInterruptEnable deve retornar STATUS_SUCCESS ou outro valor de status para o qual NT_SUCCESS(status) é igual a VERDADEIRO se a função não encontrar erros. Caso contrário, essa função deve retornar um valor de status para o qual NT_SUCCESS(status) é igual false.
Observações
Para registrar uma função de retorno de chamada EvtInterruptEnable, o driver deve colocar o endereço da função de retorno de chamada em uma estrutura de WDF_INTERRUPT_CONFIG antes de chamar WdfInterruptCreate.
A estrutura chama a função de retorno de chamada EvtInterruptEnable do driver sempre que o dispositivo entra em seu estado de trabalho (D0). Além disso, um driver pode fazer com que a estrutura chame a função de retorno de chamada EvtInterruptEnable chamando WdfInterruptEnable. Observe que a maioria dos drivers baseados em estrutura não deve chamar WdfInterruptEnable, pois a estrutura chama a função de retorno de chamada EvtInterruptEnable do driver cada vez que o dispositivo entra em seu estado de trabalho (D0).
Antes de chamar a função de retorno de chamada EvtInterruptEnable, 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 EvtInterruptEnable no IRQL = PASSIVE_LEVEL, a estrutura adquirirá o bloqueio de interrupção de nível passivo configurado pelo driver na estrutura WDF_INTERRUPT_CONFIG do objeto de interrupção.
Depois que a função EvtInterruptEnable retornar, a estrutura chamará a função de retorno de chamada de evento do driver EvtDeviceD0EntryPostInterruptsEnabled em IRQL = PASSIVE_LEVEL.
Você não deve assumir que um dispositivo usará os mesmos recursos de interrupção sempre que a estrutura chamar o EvtInterruptEnable do driver função de retorno de chamada. Às vezes, o gerenciador PnP redistribui os recursos do sistemae pode atribuir novos recursos de interrupção ao seu dispositivo. O driver pode chamar WdfInterruptGetInfo para determinar os recursos de interrupção de um dispositivo.
Para obter mais informações sobre como lidar com interrupções em drivers baseados em estrutura, consulte Tratando interrupções de hardware.
Requisitos
Requisito | Valor |
---|---|
da 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 Comentários.) |