Compartilhar via


Função ExAcquireFastMutexUnsafe (wdm.h)

A rotina ExAcquireFastMutexUnsafe adquire o mutex rápido especificado para o thread de chamada.

Sintaxe

void ExAcquireFastMutexUnsafe(
  PFAST_MUTEX FastMutex
);

Parâmetros

FastMutex

[in, out] Um ponteiro para uma estrutura FAST_MUTEX) para a qual o chamador fornece o armazenamento. O chamador inicializou essa estrutura anteriormente por uma chamada à rotina ExInitializeFastMutex

Retornar valor

Nenhum

Comentários

ExAcquireFastMutexUnsafe coloca o chamador em um estado de espera se o mutex rápido especificado não puder ser adquirido imediatamente. Caso contrário, o chamador recebe a propriedade do mutex e acesso exclusivo ao recurso que o mutex protege até que o chamador libere o mutex.

Qualquer mutex rápido adquirido por uma chamada para ExAcquireFastMutexUnsafe deve ser liberado por uma chamada para a rotina ExReleaseFastMutexUnsafe .

As rotinas ExAcquireFastMutex e ExAcquireFastMutexUnsafe fazem com que o thread de chamada seja bloqueado até que o mutex esteja disponível. A rotina ExTryToAcquireFastMutex retornará imediatamente com o valor retornado FALSE se outro thread já tiver adquirido o mutex. ExAcquireFastMutex e ExTryToAcquireFastMutex aumentam o IRQL para APC_LEVEL antes de adquirir o mutex rápido. Os drivers devem usar ExAcquireFastMutexUnsafe, que não gera o IRQL, somente se um dos seguintes procedimentos for verdadeiro:

  • O thread já está em execução em APC_LEVEL.

  • O thread adquire o mutex em uma região crítica que foi inserida anteriormente por uma chamada para a rotina KeEnterCriticalRegion ou FsRtlEnterFileSystem .

Para obter mais informações sobre mutexes rápidos, consulte os seguintes tópicos:

Mutexes rápidos e mutexes protegidos

Bloqueios, deadlocks e sincronização

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000
Cabeçalho wdm.h
IRQL APC_LEVEL
Regras de conformidade de DDI HwStorPortProhibitedDDIs(storport)

Confira também

ExAcquireFastMutex

ExInitializeFastMutex

ExReleaseFastMutexUnsafe

ExTryToAcquireFastMutex

FAST_MUTEX

FsRtlEnterFileSystem

KeEnterCriticalRegion

KeLeaveCriticalRegion