Condividi tramite


Funzione ExAcquireSpinLockExclusive (wdm.h)

La routine ExAcquireSpinLockExclusive acquisisce un blocco di rotazione per l'accesso esclusivo dal chiamante e genera irQL in DISPATCH_LEVEL.

Sintassi

KIRQL ExAcquireSpinLockExclusive(
  PEX_SPIN_LOCK SpinLock
);

Parametri

SpinLock

[in, out] Puntatore al blocco di rotazione da acquisire per l'accesso esclusivo. Il chiamante non deve già possedere questo blocco di spin.

Valore restituito

ExAcquireSpinLockExclusive restituisce il valore IRQL precedente. Per altre informazioni, vedere la sezione Osservazioni.

Commenti

In questa routine, il chiamante deve essere in esecuzione in IRQL <= DISPATCH_LEVEL. Questa routine genera il valore IRQL in DISPATCH_LEVEL e restituisce il valore IRQL originale (on-entry).

Per rilasciare il blocco spin, chiamare la routine ExReleaseSpinLockExclusive . ExReleaseSpinLockExclusive ripristina il valore IRQL al valore originale che aveva nella voce di ExAcquireSpinLockExclusive.

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 spin su zero. Questa risorsa di archiviazione deve trovarsi nella memoria dello spazio di sistema non a pagina.

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

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

Requisiti

Requisito Valore
Intestazione wdm.h
IRQL IRQL <= DISPATCH_LEVEL

Vedi anche

ExReleaseSpinLockExclusive