Partager via


ExEnterCriticalRegionAndAcquireResourceExclusive, fonction (wdm.h)

La routine ExEnterCriticalRegionAndAcquireResourceExclusive entre d’abord dans une région critique, puis acquiert un accès exclusif à la ressource spécifiée.

Syntaxe

PVOID ExEnterCriticalRegionAndAcquireResourceExclusive(
  PERESOURCE Resource
);

Paramètres

Resource

[in, out] Pointeur vers la ressource à acquérir pour un accès exclusif. Ce paramètre pointe vers une structure ERESOURCE allouée par l’appelant. L’appelant a précédemment alloué cette structure à partir d’un pool non paginé et l’a initialisée en appelant la routine ExInitializeResourceLite ou ExReinitializeResourceLite routine.

Valeur de retour

Pointeur vers une structure système opaque. Les pilotes doivent ignorer cette valeur de retour.

Remarques

Si cette routine est appelée lorsque la ressource spécifiée n’est pas immédiatement disponible pour un accès exclusif, le thread appelant est bloqué jusqu’à ce que la ressource soit disponible.

Alors qu’un thread de pilote s’exécute dans la région critique, les API utilisateur du pilote et les API de noyau normales ne sont pas exécutées. Les API de noyau spéciales sont toujours exécutées. Pour plus d’informations sur ces types d’APC, consultez Types d’API.

En désactivant temporairement les API de noyau normales, ExEnterCriticalRegionAndAcquireResourceExclusive empêche un thread appelant de niveau passif d’être préempté par un APC tandis que le thread contient une ressource partagée que l’APC peut essayer d’accéder.

Le thread appelant doit rester dans la région critique et contenir la ressource spécifiée pour plus de temps que nécessaire. Pour libérer la ressource spécifiée et quitter la région critique, appelez la routine ExReleaseResourceAndLeaveCriticalRegion.

Pour plus d’informations sur l’utilisation d’une structure ERESOURCE pour synchroniser l’accès exclusif à une ressource, consultez Présentation des routines ERESOURCE. Pour plus d’informations sur l’entrée et la sortie d’une région critique, consultez Régions critiques et régions surveillées.

Exigences

Exigence Valeur
client minimum pris en charge Windows Vista
serveur minimum pris en charge Windows Server 2003 SP1
d’en-tête wdm.h
IRQL <= APC_LEVEL
règles de conformité DDI CriticalRegions(wdm), HwStorPortProhibitedDDIs(storport)

Voir aussi

ERESOURCE

ExAcquireResourceExclusiveLite

ExInitializeResourceLite

ExReinitializeResourceLite

ExReleaseResourceLite

ExReleaseResourceAndLeaveCriticalRegion

KeEnterCriticalRegion

KeLeaveCriticalRegion