KeInitializeSpinLock-Funktion (wdm.h)
Die KeInitializeSpinLock-Routine initialisiert eine Variable vom Typ KSPIN_LOCK.
Syntax
void KeInitializeSpinLock(
[out] PKSPIN_LOCK SpinLock
);
Parameter
[out] SpinLock
Zeiger auf eine Drehsperre, für die der Aufrufer den Speicher bereitstellen muss.
Rückgabewert
Keine
Bemerkungen
Diese Routine muss vor einem ersten Aufruf von KeAcquireSpinLock, von KeAcquireInStackQueuedSpinLock oder einer anderen Supportroutine aufgerufen werden, die eine Spinsperre als Argument erfordert.
Der Speicher für ein Spin Lock-Objekt muss sich in der Geräteerweiterung eines vom Treiber erstellten Geräteobjekts, in der Controllererweiterung eines vom Treiber erstellten Controllerobjekts oder in einem nicht ausgelagerten Pool befinden, der vom Aufrufer zugewiesen wird.
Diese Funktion ist für x64-Systeme von Windows XP bis Windows 7 inlined. Ab Windows 8 wird diese Funktion aus ntoskrnl.lib
exportiert. Wenn Sie daher den Windows 10 WDK verwenden, um eine Binärdatei zu erstellen, die unter Windows 7 ausgeführt wird (und sie daher die Verwendung des NX-Pools benötigen, um Windows 10 HLK-Tests zu bestehen), müssen Sie definierenWIN9X_COMPAT_SPINLOCK
. Andernfalls wird möglicherweise angezeigt Windows cannot load the device driver for this hardware. The driver may be corrupted or missing. (Code 39)
.
Weitere Informationen zu Spinlocks finden Sie unter Spinlocks.
Aufrufer dieser Routine können in jedem IRQL ausgeführt werden. Normalerweise wird ein Aufrufer unter IRQL = PASSIVE_LEVEL in einer AddDevice-Routine ausgeführt.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Universell |
Header | wdm.h (einschließlich Wdm.h, Ntddk.h, Ntifs.h) |
Bibliothek | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | Beliebige Ebene (siehe Abschnitt Hinweise) |
DDI-Complianceregeln | HwStorPortProhibitedDDIs(storport) |
Weitere Informationen
KeAcquireInStackQueuedSpinLock
KeAcquireInStackQueuedSpinLockAtDpcLevel
KeReleaseInStackQueuedSpinLock