Condividi tramite


Metodo IWDFInterrupt::TryToAcquireInterruptLock (wudfddi.h)

[Avviso: UMDF 2 è la versione più recente di UMDF e sostituisce UMDF 1. Tutti i nuovi driver UMDF devono essere scritti usando UMDF 2. Nessuna nuova funzionalità viene aggiunta a UMDF 1 ed è disponibile un supporto limitato per UMDF 1 nelle versioni più recenti di Windows 10. I driver di Windows universali devono usare UMDF 2. Per altre informazioni, vedere Introduzione con UMDF.]

Il metodo TryToAcquireInterruptLock acquisisce il blocco di interruzione se non è già stato acquisito alcun altro thread.

Sintassi

BOOLEAN TryToAcquireInterruptLock();

Valore restituito

Il metodo restituisce TRUE se il blocco di interruzione è stato acquisito correttamente. In caso contrario, il metodo restituisce FALSE.

Commenti

A differenza di IWDFInterrupt::AcquireInterruptLock, IWDFInterrupt::TryToAcquireInterruptLock non attende che il blocco di interruzione diventi disponibile se un altro thread lo tiene.

Quando si esegue in un thread arbitrario, ad esempio un metodo di callback della coda I/O, i driver devono chiamare IWDFInterrupt::TryToAcquireInterruptLock anziché IWDFInterrupt::AcquireInterruptLock. Ad esempio, il driver chiama IWDFInterrupt::TryToAcquireInterruptLock da IQueueCallbackRead::OnRead. In questo modo si evita la possibilità di deadlock, come descritto nella sezione Osservazioni di IWDFInterrupt::AcquireInterruptLock.

Il driver non deve tentare di acquisire il blocco ricorsivo. Se connesso al debugger, il framework introduce un punto di interruzione in questo scenario.

Per altre informazioni sul blocco degli interruzioni manuali, vedere Sincronizzazione del codice di interruzione.

Per altre informazioni sulla gestione degli interruzioni nei driver UMDF, vedere Accesso agli interruzioni hardware e gestione.

Requisiti

Requisito Valore
Fine del supporto Non disponibile in UMDF 2.0 e versioni successive.
Piattaforma di destinazione Desktop
Versione UMDF minima 1.11
Intestazione wudfddi.h
DLL WUDFx.dll

Vedi anche

IWDFInterrupt

IWDFInterrupt::AcquireInterruptLock

WdfInterruptTryToAcquireLock