Partager via


Fonction ExAcquireFastMutexUnsafe (wdm.h)

La routine ExAcquireFastMutexUnsafe acquiert le mutex rapide spécifié pour le thread appelant.

Syntaxe

void ExAcquireFastMutexUnsafe(
  PFAST_MUTEX FastMutex
);

Paramètres

FastMutex

[in, out] Pointeur vers une structure FAST_MUTEX) pour laquelle l’appelant fournit le stockage. L’appelant a précédemment initialisé cette structure par un appel à la routine ExInitializeFastMutex

Valeur de retour

None

Remarques

ExAcquireFastMutexUnsafe place l’appelant dans un état d’attente si le mutex rapide spécifié ne peut pas être acquis immédiatement. Sinon, l’appelant est propriétaire du mutex et dispose d’un accès exclusif à la ressource que le mutex protège jusqu’à ce que l’appelant libère le mutex.

Tout mutex rapide acquis par un appel à ExAcquireFastMutexUnsafe doit être libéré par un appel à la routine ExReleaseFastMutexUnsafe .

Les routines ExAcquireFastMutex et ExAcquireFastMutexUnsafe provoquent le blocage du thread appelant jusqu’à ce que le mutex soit disponible. La routine ExTryToAcquireFastMutex retourne immédiatement avec la valeur de retour FALSE si un autre thread a déjà acquis le mutex. ExAcquireFastMutex et ExTryToAcquireFastMutex lèvent l’IRQL à APC_LEVEL avant d’acquérir le mutex rapide. Les pilotes doivent utiliser ExAcquireFastMutexUnsafe, qui ne déclenche pas l’IRQL, uniquement si l’une des conditions suivantes est vraie :

  • Le thread est déjà en cours d’exécution à APC_LEVEL.

  • Le thread acquiert le mutex dans une région critique précédemment entrée par un appel à la routine KeEnterCriticalRegion ou FsRtlEnterFileSystem .

Pour plus d’informations sur les mutex rapides, consultez les rubriques suivantes :

Mutex rapides et mutex surveillés

Verrous, interblocages et synchronisation

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000
En-tête wdm.h
IRQL APC_LEVEL
Règles de conformité DDI HwStorPortProhibitedDDIs(storport)

Voir aussi

ExAcquireFastMutex

ExInitializeFastMutex

ExReleaseFastMutexUnsafe

ExTryToAcquireFastMutex

FAST_MUTEX

FsRtlEnterFileSystem

KeEnterCriticalRegion

KeLeaveCriticalRegion