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. Non vengono aggiunte nuove funzionalità 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, vedi Introduzione a UMDF.]

Il metodo TryToAcquireInterruptLock acquisisce il blocco interrupt se nessun altro thread lo ha già acquisito.

Sintassi

BOOLEAN TryToAcquireInterruptLock();

Valore restituito

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

Osservazioni

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

Quando vengono eseguiti in un thread arbitrario, ad esempio un metodo di callback della coda di 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 in modo ricorsivo. Se connesso al debugger, il framework introduce un punto di interruzione in questo scenario.

Per altre informazioni sul blocco di interrupt manuale, vedere Sincronizzazione del codice interrupt.

Per altre informazioni sulla gestione degli interrupt nei driver UMDF, vedere Accesso all'hardware e alla gestione degli interrupt.

Fabbisogno

Requisito Valore
Fine del supporto Non disponibile in UMDF 2.0 e versioni successive.
piattaforma di destinazione Desktop
versione minima di UMDF 1.11
intestazione wudfddi.h
dll WUDFx.dll

Vedere anche

IWDFInterrupt

IWDFInterrupt::AcquireInterruptLock

WdfInterruptTryToAcquireLock