Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
[Aplica-se a KMDF e UMDF]
O método WdfInterruptSynchronize executa uma função de retorno de chamada especificada no DIRQL do dispositivo, mantendo 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.
Valor de retorno
WdfInterruptSynchronize retorna o valor de status booliano que a função de retorno de chamada EvtInterruptSynchronize retorna.
Uma verificação de bug ocorre se o driver fornece um identificador de objeto inválido.
Observações
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, coloque esse código em um EvtInterruptSynchronize função de retorno de chamada. 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, o driver pode chamar WdfInterruptAcquireLock e WdfInterruptReleaseLock.
Para obter mais informações sobre o método WdfInterruptSynchronize, 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.
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 um EvtInterruptSynchronize função de retorno de chamada.
BOOLEAN synchronizeReturnValue;
synchronizeReturnValue = WdfInterruptSynchronize(
WdfInterrupt,
MyEvtInterruptSynchronize,
CallbackContext
);
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) |
| Biblioteca | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
| IRQL | <=DISPATCH_LEVEL |
| regras de conformidade de DDI | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |