ExAcquireSpinLockShared, fonction (wdm.h)
La routine ExAcquireSpinLockShared acquiert un de verrouillage de rotation pour l’accès partagé par l’appelant et déclenche le runtime d’intégration sur 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 de retour
La routine ExAcquireSpinLockShared retourne la valeur IRQL précédente. Pour plus d’informations, consultez la section Remarques.
Remarques
Lors de l’entrée à cette routine, l’appelant doit s’exécuter au <IRQL = DISPATCH_LEVEL. Cette routine déclenche 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 sur la valeur d’origine qu’elle avait lors de l’entrée à 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 doit contenir le verrou de rotation uniquement 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 blocage et n’est pas autorisée.
Exigences
Exigence | Valeur |
---|---|
d’en-tête | wdm.h |
IRQL | DISPATCH_LEVEL (voir remarques.) |