KeAcquireSpinLockAtDpcLevel-Makro (wdm.h)
Die KeAcquireSpinLockAtDpcLevel Routine ruft eine Drehsperre ab, wenn der Aufrufer bereits bei IRQL >= DISPATCH_LEVEL ausgeführt wird.
void KeAcquireSpinLockAtDpcLevel(
[in, out] PKSPIN_LOCK SpinLock
);
[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.
Nichts
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.
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) |