Condividi tramite


Funzione ExAcquireFastMutexUnsafe (wdm.h)

La routine ExAcquireFastMutexUnsafe acquisisce il mutex rapido specificato per il thread chiamante.

Sintassi

void ExAcquireFastMutexUnsafe(
  PFAST_MUTEX FastMutex
);

Parametri

FastMutex

[in, out] Puntatore a una struttura FAST_MUTEX) per cui il chiamante fornisce l'archiviazione. Il chiamante ha inizializzato in precedenza questa struttura tramite una chiamata alla routine ExInitializeFastMutex

Valore restituito

nessuno

Osservazioni

ExAcquireFastMutexUnsafe inserisce il chiamante in uno stato di attesa se il mutex rapido specificato non può essere acquisito immediatamente. In caso contrario, al chiamante viene assegnata la proprietà del mutex e l'accesso esclusivo alla risorsa che il mutex protegge fino a quando il chiamante non rilascia il mutex.

Qualsiasi mutex veloce acquisito da una chiamata a ExAcquireFastMutexUnsafe deve essere rilasciato da una chiamata alla routine ExReleaseFastMutexUnsafe .

Le routine ExAcquireFastMutex e ExAcquireFastMutexUnsafe causano il blocco del thread chiamante fino a quando non è disponibile il mutex. La routine ExTryToAcquireFastMutex restituisce immediatamente con il valore restituito FALSE se un altro thread ha già acquisito il mutex. Sia ExAcquireFastMutex che ExTryToAcquireFastMutex generano irQL per APC_LEVEL prima di acquisire il mutex veloce. I driver devono usare ExAcquireFastMutexUnsafe, che non genera IRQL, solo se una delle condizioni seguenti è vera:

  • Il thread è già in esecuzione in APC_LEVEL.

  • Il thread acquisisce il mutex all'interno di un'area critica immessa in precedenza da una chiamata alla routine KeEnterCriticalRegion o FsRtlEnterFileSystem .

Per altre informazioni sui mutex veloci, vedere gli argomenti seguenti:

Mutex veloci e mutex sorvegliati

Blocchi, deadlock e sincronizzazione

Requisiti

Requisito Valore
Client minimo supportato Windows 2000
Intestazione wdm.h
IRQL APC_LEVEL
Regole di conformità DDI HwStorPortProhibitedDDIs(storport)

Vedi anche

ExAcquireFastMutex

ExInitializeFastMutex

ExReleaseFastMutexUnsafe

ExTryToAcquireFastMutex

FAST_MUTEX

FsRtlEnterFileSystem

KeEnterCriticalRegion

KeLeaveCriticalRegion