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.) |