Macro ExAcquirePushLockShared (wdm.h)
Acquiert le verrou Push donné pour l’accès partagé par le thread appelant.
Syntaxe
void ExAcquirePushLockShared(
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, le système se bloque. Si l’appelant a déjà acquis le verrou Push pour l’accès partagé, il peut recevoir à nouveau l’accès partagé.
Pour libérer le verrou push après son acquisition, appelez ExReleasePushLockShared. Chaque appel à ExAcquirePushLockShared doit être mis en correspondance par un appel suivant à ExReleasePushLockShared.
Le moment où l’appelant reçoit un accès partagé au verrou Push donné dépend des éléments suivants :
Si le verrou push n’est actuellement pas propriétaire, l’accès partagé est accordé immédiatement au thread actuel.
Si le verrou push a déjà été acquis pour l’accès partagé par un autre thread et qu’aucun thread n’attend un accès exclusif au verrou push, l’accès partagé est accordé immédiatement à l’appelant. L’appelant est placé dans un état d’attente s’il existe un serveur exclusif.
Si le verrou push a déjà été acquis pour un accès exclusif par un autre thread ou s’il y a un autre thread en attente d’accès exclusif, le thread actuel est mis en é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 normale du noyau en appelant KeEnterCriticalRegion. Remise réactivable après la libération du verrou push en appelant KeLeaveCriticalRegion. Pour plus d’informations, consultez Désactivation des API.
Pour acquérir un verrou push pour un accès exclusif, appelez ExAcquirePushLockExclusive.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 10, version 1809 |
En-tête | wdm.h |