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 |