Freigeben über


ExAcquireSpinLockShared-Funktion (wdm.h)

Die ExAcquireSpinLockShared-Routine ruft eine Drehsperre für den gemeinsamen Zugriff durch den Aufrufer ab und hebt die IRQL auf DISPATCH_LEVEL.

Syntax

KIRQL ExAcquireSpinLockShared(
  [in, out] PEX_SPIN_LOCK SpinLock
);

Parameter

[in, out] SpinLock

Ein Zeiger auf die Drehsperre, die für den gemeinsamen Zugriff abgerufen werden soll. Der Aufrufer darf diese Spin-Sperre nicht bereits besitzen.

Rückgabewert

Die ExAcquireSpinLockShared-Routine gibt den vorherigen IRQL-Wert zurück. Weitere Informationen finden Sie im Abschnitt Hinweise.

Hinweise

Beim Einstieg in diese Routine muss der Aufrufer unter IRQL <= DISPATCH_LEVEL ausgeführt werden. Diese Routine hebt den IRQL auf DISPATCH_LEVEL und gibt den ursprünglichen IRQL-Wert (beim Eintrag) zurück.

Rufen Sie die ExReleaseSpinLockShared-Routine auf, um die Spin-Sperre freizugeben. ExReleaseSpinLockShared stellt den IRQL auf den ursprünglichen Wert zurück, den es beim Eintrag in ExAcquireSpinLockShared hatte.

Eine Drehsperre ist eine 32-Bit-Variable vom Typ EX_SPIN_LOCK. Der Treiber muss den Speicher für die Spinsperre zuordnen und die Spinsperre auf 0 (null) initialisieren. Dieser Speicher muss sich im nicht ausgelagerten Systemspeicher befinden.

Der Aufrufer sollte die Drehsperre nur kurz halten, bevor sie losgelassen wird. Weitere Informationen finden Sie unter Einführung in Spin-Sperren.

Der rekursive Erwerb einer Drehsperre verursacht einen Deadlock und ist nicht zulässig.

Anforderungen

Anforderung Wert
Header wdm.h
IRQL DISPATCH_LEVEL (siehe Hinweise.)

Weitere Informationen

ExReleaseSpinLockShared