ExAcquireSpinLockShared, fonction (wdm.h)

La routine ExAcquireSpinLockShared acquiert un verrou de rotation pour l’accès partagé par l’appelant et élève l’IRQL à DISPATCH_LEVEL.

Syntaxe

KIRQL ExAcquireSpinLockShared(
  [in, out] PEX_SPIN_LOCK SpinLock
);

Paramètres

[in, out] SpinLock

Pointeur vers le verrou de rotation à acquérir pour l’accès partagé. L’appelant ne doit pas déjà posséder ce verrou de rotation.

Valeur retournée

La routine ExAcquireSpinLockShared retourne la valeur IRQL précédente. Pour plus d’informations, consultez la section Remarques.

Remarques

Lors de l’entrée dans cette routine, l’appelant doit être en cours d’exécution sur IRQL <= DISPATCH_LEVEL. Cette routine élève l’IRQL à DISPATCH_LEVEL et retourne la valeur IRQL d’origine (entrée).

Pour libérer le verrou de rotation, appelez la routine ExReleaseSpinLockShared . ExReleaseSpinLockShared restaure l’IRQL à la valeur d’origine qu’il avait lors de l’entrée dans ExAcquireSpinLockShared.

Un verrou de rotation est une variable 32 bits de type EX_SPIN_LOCK. Le pilote doit allouer le stockage pour le verrou de rotation et initialiser le verrou de rotation à zéro. Ce stockage doit se trouver dans la mémoire de l’espace système non paginé.

L’appelant ne doit maintenir le verrou de rotation que brièvement avant de le libérer. Pour plus d’informations, consultez Présentation des verrous de rotation.

L’acquisition récursive d’un verrou de rotation provoque un interblocage et n’est pas autorisée.

Configuration requise

Condition requise Valeur
En-tête wdm.h
IRQL DISPATCH_LEVEL (voir les remarques.)

Voir aussi

ExReleaseSpinLockShared