Condividi tramite


Funzione ExAcquireSpinLockShared (wdm.h)

La routine ExAcquireSpinLockShared acquisisce un 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 spin da acquisire per l'accesso condiviso. Il chiamante non deve già possedere questo blocco di rotazione.

Valore restituito

La routine ExAcquireSpinLockShared restituisce il valore IRQL precedente. Per altre informazioni, vedere la sezione Osservazioni .

Commenti

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 routine ExReleaseSpinLockShared . ExReleaseSpinLockShared ripristina irQL sul valore originale di cui era stato inserito in ExAcquireSpinLockShared.

Un blocco di rotazione è una variabile a 32 bit di tipo EX_SPIN_LOCK. Il driver deve allocare lo spazio di archiviazione per il blocco spin e inizializzare il blocco di rotazione su zero. Questa risorsa di archiviazione deve trovarsi nella memoria dello spazio di sistema non di paging.

Il chiamante deve contenere il blocco di rotazione solo brevemente prima di rilasciarlo. Per altre informazioni, vedere Introduzione ai blocchi di selezione.

L'acquisizione ricorsiva di un blocco spin causa deadlock e non è consentita.

Requisiti

Requisito Valore
Intestazione wdm.h
IRQL DISPATCH_LEVEL (vedere la sezione Osservazioni).

Vedi anche

ExReleaseSpinLockShared