KeAcquireSpinLockAtDpcLevel-Makro (wdm.h)
Die KeAcquireSpinLockAtDpcLevel Routine ruft eine Drehsperre ab, wenn der Aufrufer bereits bei 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 Drehsperre muss aus einem nicht ausgelagerten Pool stammen.
Rückgabewert
Nichts
Bemerkungen
Treiber rufen KeAcquireSpinLockAtDpcLevel anstelle von KeAcquireSpinLock- für eine bessere Treiberleistung auf, wenn sie bereits bei einer IRQL von DISPATCH_LEVEL oder höher ausgeführt werden.
Wenn ein Treiber bei IRQL <= APC_LEVEL ausgeführt wird, sollte er KeAcquireSpinLock- aufrufen, damit IRQL von dieser Routine ausgelöst wird. KeAcquireSpinLockAtDpcLevel davon aus, dass der Aufrufer bereits bei IRQL >= DISPATCH_LEVEL ausgeführt wird, sodass keine Raise erforderlich ist.
Der Aufrufer sollte die Drehsperre mit KeReleaseSpinLockFromDpcLevel so schnell wie möglich freigeben.
Weitere Informationen zu Drehsperren finden Sie unter Spin Locks.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform- | Universal |
Header- | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
Library | NtosKrnl.lib |
DLL- | NtosKrnl.exe |
IRQL- | Siehe Abschnitt "Hinweise". |
DDI-Complianceregeln | HwStorPortProhibitedDIs(storport), IrqlDispatch(storport), SpinLockSafe(storport) |