Compartilhar via


Método IWDFInterrupt::TryToAcquireInterruptLock (wudfddi.h)

[Aviso: UMDF 2 é a versão mais recente do UMDF e substitui UMDF 1. Todos os novos drivers UMDF devem ser gravados usando UMDF 2. Nenhum novo recurso está sendo adicionado ao UMDF 1 e há suporte limitado para UMDF 1 em versões mais recentes do Windows 10. Drivers universais do Windows devem usar UMDF 2. Para obter mais informações, consulte Introdução com UMDF.]

O método TryToAcquireInterruptLock adquire o bloqueio de interrupção se nenhum outro thread já o tiver adquirido.

Sintaxe

BOOLEAN TryToAcquireInterruptLock();

Retornar valor

O método retornará TRUE se o bloqueio de interrupção tiver sido adquirido com êxito. Caso contrário, o método retornará FALSE.

Comentários

Ao contrário de IWDFInterrupt::AcquireInterruptLock, IWDFInterrupt::TryToAcquireInterruptLock não espera que o bloqueio de interrupção fique disponível se outro thread o estiver mantendo.

Ao executar em um thread arbitrário, como um método de retorno de chamada de fila de E/S, os drivers devem chamar IWDFInterrupt::TryToAcquireInterruptLock em vez de IWDFInterrupt::AcquireInterruptLock. Por exemplo, o driver chama IWDFInterrupt::TryToAcquireInterruptLock de IQueueCallbackRead::OnRead. Isso evita a possibilidade de deadlock, conforme descrito na seção Comentários de IWDFInterrupt::AcquireInterruptLock.

O driver não deve tentar adquirir o bloqueio recursivamente. Se estiver conectada ao depurador, a estrutura introduzirá um ponto de interrupção nesse cenário.

Para obter mais informações sobre o bloqueio manual de interrupção, consulte Sincronizando o código de interrupção.

Para obter mais informações sobre como lidar com interrupções em drivers UMDF, consulte Acessando interrupções de hardware e manipulação.

Requisitos

Requisito Valor
Fim do suporte Indisponível no UMDF 2.0 e posterior.
Plataforma de Destino Área de Trabalho
Versão mínima do UMDF 1.11
Cabeçalho wudfddi.h
DLL WUDFx.dll

Confira também

IWDFInterrupt

IWDFInterrupt::AcquireInterruptLock

WdfInterruptTryToAcquireLock