Compartilhar via


EVT_WDF_INTERRUPT_SYNCHRONIZE função de retorno de chamada (wdfinterrupt.h)

[Aplica-se a KMDF e UMDF]

A função de retorno de chamada de evento EvtInterruptSynchronize de um 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.

Retornar valor

A função de retorno de chamada EvtInterruptSynchronize deverá retornar TRUE se a operação for bem-sucedida. Caso contrário, essa função deverá retornar FALSE.

Comentários

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 manipulação no IRQL (DIRQL) do dispositivo, antes de chamar a função de retorno de chamada EvtInterruptSynchronize , 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 WDF_INTERRUPT_CONFIG do objeto de interrupção.

Como resultado, enquanto uma função de retorno de chamada EvtInterruptSynchronize está em execução, a função de retorno de chamada EvtInterruptIsr do objeto interruptão (e qualquer outro código executado em DIRQL enquanto mantém o bloqueio de rotação) não pode ser executada.

As funções de retorno de chamada EvtInterruptSynchronize 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 outras funções de retorno de chamada EvtInterruptSynchronize ou EvtInterruptIsr de um 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 a manipulação 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 configurado pelo driver 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 Sincronizando código de interrupção.

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.)

Confira também

EvtInterruptIsr

WDF_INTERRUPT_CONFIG

WdfInterruptSynchronize