Funzione ExAcquireSpinLockShared (wdm.h)
La routine ExAcquireSpinLockShared acquisisce un di blocco spin per l'accesso condiviso dal chiamante e genera irQL per DISPATCH_LEVEL.
Sintassi
KIRQL ExAcquireSpinLockShared(
[in, out] PEX_SPIN_LOCK SpinLock
);
Parametri
[in, out] SpinLock
Puntatore al blocco di selezione da acquisire per l'accesso condiviso. Il chiamante non deve già possedere questo blocco di selezione.
Valore restituito
La routine ExAcquireSpinLockShared restituisce il valore IRQL precedente. Per altre informazioni, vedere la sezione osservazioni.
Osservazioni
Nella voce di questa routine, il chiamante deve essere in esecuzione in IRQL <= DISPATCH_LEVEL. Questa routine genera irQL per DISPATCH_LEVEL e restituisce il valore IRQL originale (on-entry).
Per rilasciare il blocco di selezione, chiamare la routineExReleaseSpinLockShared. exReleaseSpinLockShared ripristina l'IRQL sul valore originale che aveva all'ingresso ExAcquireSpinLockShared.
Un blocco di selezione è una variabile a 32 bit di tipo EX_SPIN_LOCK. Il driver deve allocare lo spazio di archiviazione per il blocco di selezione e inizializzare il blocco di selezione su zero. Questa risorsa di archiviazione deve trovarsi nella memoria dello spazio di sistema non di paging.
Il chiamante deve tenere premuto il blocco di rotazione solo brevemente prima di rilasciarlo. Per altre informazioni, vedere Introduction to Spin Locks.
L'acquisizione ricorsiva di un blocco spin causa deadlock e non è consentita.
Fabbisogno
Requisito | Valore |
---|---|
intestazione | wdm.h |
IRQL | DISPATCH_LEVEL (vedere la sezione Note). |