Freigeben über


ExAcquireSpinLockExclusiveAtDpcLevel-Funktion (wdm.h)

Die ExAcquireSpinLockExclusiveAtDpcLevel-Routine ruft eine Spinsperre für den exklusiven Zugriff durch einen Aufrufer ab, der bereits unter IRQL >= DISPATCH_LEVEL ausgeführt wird.

Syntax

void ExAcquireSpinLockExclusiveAtDpcLevel(
  [in, out] PEX_SPIN_LOCK SpinLock
);

Parameter

[in, out] SpinLock

Ein Zeiger auf die zu erfassende Drehsperre. Der Aufrufer darf diese Spinsperre nicht bereits besitzen.

Rückgabewert

Keine

Bemerkungen

Beim Einstieg in diese Routine muss der Aufrufer unter IRQL >= DISPATCH_LEVEL ausgeführt werden. Durch diese Routine wird der IRQL nicht geändert.

Um die Spinsperre zu lösen, ruft der Treiber die ExReleaseSpinLockExclusiveFromDpcLevel-Routine auf.

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

Der Aufrufer sollte die Drehsperre nur kurz halten, bevor er sie loslässt. Weitere Informationen finden Sie unter Einführung in Spin Locks.

Der rekursive Erwerb einer Spinsperre verursacht deadlock und ist nicht zulässig.

Anforderungen

Anforderung Wert
Header wdm.h
IRQL IRQL >= DISPATCH_LEVEL

Weitere Informationen

ExReleaseSpinLockExclusiveFromDpcLevel