Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
[Aplica-se a KMDF e UMDF]
A função de retorno de chamada de evento EvtInterruptSynchronize do driver executa operações que devem ser sincronizadas com uma função de retorno de chamada EvtInterruptIsr.
Sintaxe
EVT_WDF_INTERRUPT_SYNCHRONIZE EvtWdfInterruptSynchronize;
BOOLEAN EvtWdfInterruptSynchronize(
[in] WDFINTERRUPT Interrupt,
[in] WDFCONTEXT Context
)
{...}
Parâmetros
[in] Interrupt
Um identificador para um objeto de interrupção de estrutura.
[in] Context
Informações fornecidas pelo driver que o driver especifica quando chama WdfInterruptSynchronize.
Valor de retorno
A função de retorno de chamada EvtInterruptSynchronize deverá retornar verdadeiro se a operação for bem-sucedida. Caso contrário, essa função deverá retornar FALSE .
Observações
Para executar uma função de retorno de chamada EvtInterruptSynchronize, o driver deve chamar WdfInterruptSynchronize.
Se o driver tiver configurado o objeto de interrupção para tratamento no DIRQL (IRQL) do dispositivo, antes de chamar o EvtInterruptSynchronize função de retorno de chamada, a estrutura elevará o nível de solicitação de interrupção do processador para DIRQL e adquirirá o bloqueio de rotação especificado pelo driver na estrutura de WDF_INTERRUPT_CONFIG do objeto de interrupção.
Como resultado, enquanto uma função de retorno de chamada EvtInterruptSynchronize está sendo executada, o EvtInterruptIsr do objeto de interrupção função de retorno de chamada (e qualquer outro código executado no DIRQL enquanto mantém o bloqueio de rotação) não pode ser executado.
EvtInterruptSynchronize funções de retorno de chamada devem ser projetadas para que sejam executadas por apenas um curto período de tempo. Normalmente, eles são usados para acessar dados de interrupção que também são acessados por outro objeto de interrupção EvtInterruptSynchronize ou funções de retorno de chamada EvtInterruptIsr.
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 EvtInterruptSynchronize em IRQL = PASSIVE_LEVEL, a estrutura adquirirá o bloqueio de interrupção de nível passivo que o driver configurou na estrutura WDF_INTERRUPT_CONFIG do objeto de interrupção.
Para obter mais informações sobre a função de retorno de chamada EvtInterruptSynchronize, consulte Synchronizing Interrupt Code.
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.) |