Partager via


ExAcquireFastMutexUnsafe, fonction (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

Aucun

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 reçoit la propriété du mutex et l’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. À la fois ExAcquireFastMutex et ExTryToAcquireFastMutex déclencher l’IRQL à APC_LEVEL avant d’acquérir le mutex rapide. Les pilotes doivent utiliser ExAcquireFastMutexUnsafe, qui ne déclenche pas le runtime d’intégration, uniquement si l’une des valeurs 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 routine.

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

mutex rapides et les de mutex guarded

verrous, interblocages et de synchronisation

Exigences

Exigence Valeur
client minimum pris en charge Windows 2000
d’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