Freigeben über


KefAcquireSpinLockAtDpcLevel-Funktion (wdm.h)

Die KefAcquireSpinLockAtDpcLevel-Routine ruft eine Drehsperre ab, wenn der Aufrufer bereits unter IRQL >= DISPATCH_LEVEL ausgeführt wird.

Syntax

VOID KefAcquireSpinLockAtDpcLevel(
  PKSPIN_LOCK SpinLock
);

Die Parameter

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 KefAcquireSpinLockAtDpcLevel anstelle von KeAcquireSpinLock auf, um eine bessere Treiberleistung zu erzielen, wenn und nur, wenn sie bereits bei einer IRQL von DISPATCH_LEVEL oder höher ausgeführt werden.

Wenn ein Treiber unter IRQL <= APC_LEVEL ausgeführt wird, sollte keAcquireSpinLock aufgerufen werden, damit IRQL von dieser Routine ausgelöst wird. KefAcquireSpinLockAtDpcLevel geht davon aus, dass der Aufrufer bereits unter IRQL >= DISPATCH_LEVEL ausgeführt wird, sodass keine Raise erforderlich ist.

Der Aufrufer sollte die Drehsperre mit KefReleaseSpinLockFromDpcLevel so schnell wie möglich freigeben.

Weitere Informationen zu Drehsperren finden Sie unter Spin Locks.

Anforderungen

Anforderung Wert
Zielplattform universell
Überschrift wdm.h (einschließlich Wdm.h, Ntddk.h, Ntifs.h)
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe
IRQL DISPATCH_LEVEL
DDI-Complianceregeln HwStorPortProhibitedDIs(storport), IrqlDispatch(wdm), SpinLock(wdm), SpinlockRelease(wdm)

Siehe auch