Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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) |