Função WdfInterruptSynchronize (wdfinterrupt.h)

[Aplica-se a KMDF e UMDF]

O método WdfInterruptSynchronize executa uma função de retorno de chamada especificada no DIRQL do dispositivo enquanto mantém o bloqueio de rotação de um objeto de interrupção.

Para objetos de interrupção de nível passivo, esse método executa uma função de retorno de chamada especificada no nível passivo, mantendo o bloqueio de interrupção de nível passivo de um objeto de interrupção.

Sintaxe

BOOLEAN WdfInterruptSynchronize(
  [in] WDFINTERRUPT                  Interrupt,
  [in] PFN_WDF_INTERRUPT_SYNCHRONIZE Callback,
  [in] WDFCONTEXT                    Context
);

Parâmetros

[in] Interrupt

Um identificador para um objeto de interrupção de estrutura.

[in] Callback

Um ponteiro para uma função de retorno de chamada EvtInterruptSynchronize .

[in] Context

Um ponteiro não tipado para informações fornecidas pelo driver que a estrutura passa para a função de retorno de chamada EvtInterruptSynchronize .

Retornar valor

WdfInterruptSynchronize retorna o valor booliano status que a função de retorno de chamada EvtInterruptSynchronize retorna.

Um bug marcar ocorrerá se o driver fornecer um identificador de objeto inválido.

Comentários

Se você quiser que o driver execute um código que deve ser executado sem ser preempido e com a manutenção de interrupções de dispositivo efetivamente desabilitada, você deve colocar esse código em uma função de retorno de chamada EvtInterruptSynchronize . Para agendar a execução da função de retorno de chamada, o driver deve chamar WdfInterruptSynchronize.

O método WdfInterruptSynchronize retorna após a execução da função de retorno de chamada EvtInterruptSynchronize .

Em vez de chamar WdfInterruptSynchronize, seu driver pode chamar WdfInterruptAcquireLock e WdfInterruptReleaseLock.

Para obter mais informações sobre o método WdfInterruptSynchronize , 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.

Para interrupções de nível passivo, o driver deve chamar WdfInterruptSynchronize em IRQL = PASSIVE_LEVEL.

Não chame WdfInterruptSynchronize de um contexto de thread arbitrário, como um manipulador de solicitação.

Exemplos

O exemplo de código a seguir mostra como chamar WdfInterruptSynchronize para agendar a execução de uma função de retorno de chamada EvtInterruptSynchronize .

BOOLEAN synchronizeReturnValue;

synchronizeReturnValue = WdfInterruptSynchronize(
                                         WdfInterrupt,
                                         MyEvtInterruptSynchronize,
                                         CallbackContext
                                         );

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)
Biblioteca Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL <=DISPATCH_LEVEL
Regras de conformidade de DDI DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Confira também

EvtInterruptSynchronize

WdfInterruptAcquireLock

WdfInterruptReleaseLock