KeAcquireSpinLockAtDpcLevel-Makro (wdm.h)
Die KeAcquireSpinLockAtDpcLevel-Routine ruft eine Drehsperre ab, wenn der Aufrufer bereits unter IRQL >= DISPATCH_LEVEL ausgeführt wird.
Syntax
void KeAcquireSpinLockAtDpcLevel(
[in, out] PKSPIN_LOCK SpinLock
);
Parameter
[in, out] SpinLock
Zeiger auf eine initialisierte KSPIN_LOCK Drehsperre, für die der Aufrufer den Speicher bereitstellen muss. Die Spinsperre muss aus einem Nicht-Auslagerungspool stammen.
Rückgabewert
Keine
Bemerkungen
Treiber rufen KeAcquireSpinLockAtDpcLevel anstelle von KeAcquireSpinLock auf, um die Treiberleistung zu verbessern, wenn sie bereits mit einem IRQL von DISPATCH_LEVEL oder höher ausgeführt werden.
Wenn ein Treiber unter IRQL <= APC_LEVEL ausgeführt wird, sollte er KeAcquireSpinLock aufrufen, damit IRQL von dieser Routine ausgelöst wird. KeAcquireSpinLockAtDpcLevel geht davon aus, dass der Aufrufer bereits unter IRQL >= DISPATCH_LEVEL ausgeführt wird, sodass kein Auslösen erforderlich ist.
Der Aufrufer sollte die Spinsperre mit KeReleaseSpinLockFromDpcLevel so schnell wie möglich freigeben.
Weitere Informationen zu Spinlocks finden Sie unter Spinlocks.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Universell |
Header | wdm.h (einschließlich Wdm.h, Ntddk.h, Ntifs.h) |
Bibliothek | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | Weitere Informationen finden Sie im Abschnitt mit den Hinweisen. |
DDI-Complianceregeln | HwStorPortProhibitedDIs(storport), IrqlDispatch(storport), SpinLockSafe(storport) |