Поделиться через


Функция ExAcquireFastMutexUnsafe (wdm.h)

Подпрограмма ExAcquireFastMutexUnsafe получает указанный быстрый мьютекс для вызывающего потока.

Синтаксис

void ExAcquireFastMutexUnsafe(
  PFAST_MUTEX FastMutex
);

Параметры

FastMutex

[вход, выход] Указатель на структуру FAST_MUTEX), для которую вызывающий объект предоставляет хранилище. Вызывающий объект ранее инициализировал эту структуру путем вызова подпрограммы ExInitializeFastMutex .

Возвращаемое значение

None

Remarks

ExAcquireFastMutexUnsafe переводит вызывающий объект в состояние ожидания, если указанный быстрый мьютекс не может быть получен немедленно. В противном случае вызывающему объекту предоставляется право владения мьютексом и монопольный доступ к ресурсу, который защищает мьютекс, пока вызывающий объект не освобождает мьютекс.

Любой быстрый мьютекс, полученный вызовом ExAcquireFastMutexUnsafe , должен быть освобожден вызовом процедуры ExReleaseFastMutexUnsafe .

Процедуры ExAcquireFastMutex и ExAcquireFastMutexUnsafe приводят к блокировке вызывающего потока, пока мьютекс не будет доступен. Подпрограмма ExTryToAcquireFastMutex немедленно возвращает значение FALSE , если другой поток уже получил мьютекс. ExAcquireFastMutex и ExTryToAcquireFastMutex вызывают IRQL до APC_LEVEL перед получением быстрого мьютекса. Драйверы должны использовать ExAcquireFastMutexUnsafe, который не вызывает IRQL, только если выполняется одно из следующих действий:

Дополнительные сведения о быстрых мьютексах см. в следующих разделах:

Быстрые мьютексы и защищенные мьютексы

Блокировки, взаимоблокировки и синхронизация

Требования

Требование Значение
Минимальная версия клиента Windows 2000
Верхняя часть wdm.h
IRQL APC_LEVEL
Правила соответствия DDI HwStorPortProhibitedDIS(storport)

См. также раздел

ExAcquireFastMutex

ExInitializeFastMutex

ExReleaseFastMutexUnsafe

ExTryToAcquireFastMutex

FAST_MUTEX

FsRtlEnterFileSystem

KeEnterCriticalRegion

KeLeaveCriticalRegion