Partager via


KeInitializeSpinLock, fonction (wdm.h)

La routine KeInitializeSpinLock initialise une variable de type KSPIN_LOCK.

Syntaxe

void KeInitializeSpinLock(
  [out] PKSPIN_LOCK SpinLock
);

Paramètres

[out] SpinLock

Pointeur vers un verrou de rotation pour lequel l’appelant doit fournir le stockage.

Valeur de retour

None

Remarques

Cette routine doit être appelée avant un appel initial à KeAcquireSpinLock, à KeAcquireInStackQueuedSpinLock ou à toute autre routine de prise en charge qui nécessite un verrou de rotation en tant qu’argument.

Le stockage d’un objet spin lock doit être résident : dans l’extension d’appareil d’un objet d’appareil créé par un pilote, dans l’extension de contrôleur d’un objet contrôleur créé par le pilote ou dans un pool non paginé alloué par l’appelant.

Cette fonction est incorporée pour les systèmes x64 de Windows XP à Windows 7. À partir de Windows 8, cette fonction est exportée à partir de ntoskrnl.lib. Par conséquent, si vous utilisez le Windows 10 WDK pour créer un fichier binaire qui s’exécute sur Windows 7 (et que vous avez donc besoin de l’utilisation du pool NX pour réussir Windows 10 tests HLK), vous devez définir WIN9X_COMPAT_SPINLOCK. Sinon, vous pouvez voir Windows cannot load the device driver for this hardware. The driver may be corrupted or missing. (Code 39).

Pour plus d’informations sur les verrous de rotation, consultez Spin Locks.

Les appelants de cette routine peuvent s’exécuter à n’importe quel IRQL. En règle générale, un appelant s’exécute à IRQL = PASSIVE_LEVEL dans une routine AddDevice .

Configuration requise

Condition requise Valeur
Plateforme cible Universal
En-tête wdm.h (inclure Wdm.h, Ntddk.h, Ntifs.h)
Bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL N’importe quel niveau (voir la section Remarques)
Règles de conformité DDI HwStorPortProhibitedDDIs(storport)

Voir aussi

KeAcquireInStackQueuedSpinLock

KeAcquireInStackQueuedSpinLockAtDpcLevel

KeAcquireSpinLock

KeAcquireSpinLockAtDpcLevel

KeReleaseInStackQueuedSpinLock

KeReleaseInStackQueuedSpinLockFromDpcLevel

KeReleaseSpinLock

KeReleaseSpinLockFromDpcLevel