Функция 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, только если выполняется одно из следующих действий:
Поток уже выполняется в APC_LEVEL.
Поток получает мьютекс в критической области, которая была введена ранее при вызове подпрограммы KeEnterCriticalRegion или FsRtlEnterFileSystem .
Дополнительные сведения о быстрых мьютексах см. в следующих разделах:
Быстрые мьютексы и защищенные мьютексы
Блокировки, взаимоблокировки и синхронизация
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 |
Верхняя часть | wdm.h |
IRQL | APC_LEVEL |
Правила соответствия DDI | HwStorPortProhibitedDIS(storport) |