Freigeben über


KeInitializeSpinLock-Funktion (wdm.h)

Die KeInitializeSpinLock Routine initialisiert eine Variable vom Typ KSPIN_LOCK.

Syntax

VOID KeInitializeSpinLock(
  [out] PKSPIN_LOCK SpinLock
);

Parameter

[out] SpinLock

Zeigen Sie auf eine Drehsperre, für die der Aufrufer den Speicher bereitstellen muss.

Rückgabewert

Nichts

Bemerkungen

Diese Routine muss vor einem anfänglichen Aufruf von KeAcquireSpinLockaufgerufen werden, um KeAcquireInStackQueuedSpinLock oder einer anderen Supportroutine, die eine Drehsperre als Argument erfordert, zu.

Speicher für ein Spin-Lock-Objekt muss resident sein: in der Geräteerweiterung eines vom Treiber erstellten Geräteobjekts, in der Controllererweiterung eines vom Treiber erstellten Controllerobjekts oder in nicht seitengebundenem Pool, der vom Aufrufer zugewiesen wird.

Diese Funktion ist inlined für x64-Systeme von Windows XP bis Windows 7. Ab Windows 8 wird diese Funktion aus ntoskrnl.libexportiert. Wenn Sie daher windows 10 WDK verwenden, um eine Binärdatei zu erstellen, die unter Windows 7 ausgeführt wird (und sie daher NX-Poolnutzung zum Bestehen von Windows 10 HLK-Tests benötigen), müssen Sie WIN9X_COMPAT_SPINLOCKdefinieren. Andernfalls wird möglicherweise Windows cannot load the device driver for this hardware. The driver may be corrupted or missing. (Code 39)angezeigt.

Weitere Informationen zu Drehsperren finden Sie unter Spin Locks.

Aufrufer dieser Routine können in jedem IRQL ausgeführt werden. Normalerweise wird ein Aufrufer bei IRQL = PASSIVE_LEVEL in einer AddDevice- Routine ausgeführt.

Anforderungen

Anforderung Wert
Zielplattform- Universal
Header- wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
Library NtosKrnl.lib
DLL- NtosKrnl.exe
IRQL- Beliebige Ebene (siehe Abschnitt "Hinweise")
DDI-Complianceregeln HwStorPortProhibitedDIs(storport)

Siehe auch

KeAcquireInStackQueuedSpinLock

KeAcquireInStackQueuedSpinLockAtDpcLevel

KeAcquireSpinLock

KeAcquireSpinLockAtDpcLevel

KeReleaseInStackQueuedSpinLock

KeReleaseInStackQueuedSpinLockFromDpcLevel

KeReleaseSpinLock

KeReleaseSpinLockFromDpcLevel