ExAcquireSpinLockShared-Funktion (wdm.h)
Die ExAcquireSpinLockShared Routine ruft eine Drehsperre für den freigegebenen Zugriff durch den Aufrufer ab und löst die IRQL auf DISPATCH_LEVEL aus.
Syntax
KIRQL ExAcquireSpinLockShared(
[in, out] PEX_SPIN_LOCK SpinLock
);
Parameter
[in, out] SpinLock
Ein Zeiger auf die Drehungssperre, die für den freigegebenen Zugriff erworben werden soll. Der Aufrufer darf diese Drehsperre nicht bereits besitzen.
Rückgabewert
Die ExAcquireSpinLockShared-Routine gibt den vorherigen IRQL-Wert zurück. Weitere Informationen finden Sie im Abschnitt Anmerkungen.
Bemerkungen
Bei der Eingabe in diese Routine muss der Aufrufer bei IRQL <= DISPATCH_LEVEL ausgeführt werden. Diese Routine löst die IRQL auf DISPATCH_LEVEL aus und gibt den ursprünglichen IRQL-Wert (on-entry) zurück.
Rufen Sie zum Freigeben der Drehungssperre die ExReleaseSpinLockShared Routine auf. ExReleaseSpinLockShared stellt die IRQL auf den ursprünglichen Wert zurück, den sie für den Eintrag auf ExAcquireSpinLockSharedhatte.
Eine Drehsperre ist eine 32-Bit-Variable vom Typ EX_SPIN_LOCK. Der Treiber muss den Speicher für die Drehsperre zuordnen und die Drehsperre auf Null initialisieren. Dieser Speicher muss sich im nicht ausgelagerten Systemspeicher befinden.
Der Anrufer sollte die Drehsperre nur kurz halten, bevor er losgelassen wird. Weitere Informationen finden Sie unter Einführung in Spin Locks.
Rekursives Erwerben einer Drehsperre bewirkt deadlock und ist nicht zulässig.
Anforderungen
Anforderung | Wert |
---|---|
Header- | wdm.h |
IRQL- | DISPATCH_LEVEL (Siehe Hinweise.) |