Macro ExAcquirePushLockExclusive (wdm.h)

Acquiert le verrou push donné pour un accès exclusif par le thread appelant.

Syntaxe

void ExAcquirePushLockExclusive(
   Lock
);

Paramètres

Lock

Pointeur de verrouillage push opaque. Ce pointeur doit avoir été initialisé par un appel précédent à ExInitializePushLock.

Valeur de retour

None

Remarques

Les verrous push sont similaires aux structures ERESOURCE (également appelées ressources) en ce qu’ils peuvent être acquis pour un accès partagé ou exclusif. Pour plus d’informations sur les verrous push, consultez l’entrée de référence pour ExInitializePushLock.

Contrairement aux structures ERESOURCE, les verrous push ne peuvent pas être acquis de manière récursive. Si l’appelant a déjà acquis le verrou push pour l’accès exclusif ou partagé, le thread se bloque. Lorsque l’appelant reçoit un accès exclusif au verrou push donné, dépend des éléments suivants :

  • Si le verrou push n’est actuellement pas propriétaire, l’accès exclusif est accordé immédiatement au thread actuel.

  • Si le verrou push a déjà été acquis pour un accès exclusif ou partagé par un autre thread, le thread actuel est placé dans un état d’attente jusqu’à ce que le verrou push puisse être acquis.

Avant d’appeler cette routine, le pilote doit désactiver la remise APC du noyau normal en appelant KeEnterCriticalRegion. Réenable la remise après la libération du verrou push en appelant KeLeaveCriticalRegion. Pour plus d’informations, consultez Désactivation des API.

Pour libérer le verrou push après son acquisition, appelez ExReleasePushLockExclusive. Chaque appel à ExAcquirePushLockExclusive doit être mis en correspondance par un appel suivant à ExReleasePushLockExclusive.

Pour acquérir un verrou push pour l’accès partagé, appelez ExAcquirePushLockShared.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 10, version 1809
En-tête wdm.h

Voir aussi

ExInitializePushLock

KeEnterCriticalRegion

ExReleasePushLockExclusive

ExAcquirePushLockShared