Функция ExAcquireFastMutexUnsafe (wdm.h)
Подпрограмма ExAcquireFastMutexUnsafe получает указанный быстрый мьютекс для вызывающего потока.
Синтаксис
void ExAcquireFastMutexUnsafe(
PFAST_MUTEX FastMutex
);
Параметры
FastMutex
[in, out] Указатель на структуру FAST_MUTEX), для которую вызывающий объект предоставляет хранилище. Вызывающий объект ранее инициализировал эту структуру вызовом подпрограммы ExInitializeFastMutex
Возвращаемое значение
Никакой
Замечания
ExAcquireFastMutexUnsafe помещает вызывающий объект в состояние ожидания, если указанный быстрый мьютекс не может быть получен немедленно. В противном случае вызывающий объект имеет право владения мьютексом и монопольным доступом к ресурсу, который мьютекс защищает до тех пор, пока вызывающий не выпустит мьютекс.
Любой быстрый мьютекс, полученный вызовом ExAcquireFastMutexUnsafe, должен быть освобожден вызовом процедуры ExReleaseFastMutexUnsafe.
Подпрограммы ExAcquireFastMutex и ExAcquireFastMutexUnsafe вызывают поток блокировки до тех пор, пока не будет доступен мьютекс. Подпрограмма ExTryToAcquireFastMu tex возвращается немедленно с возвращаемым значением FALSE, если другой поток уже приобрел мьютекс. Оба ExAcquireFastMutex и ExTryToAcquireFastMutex вызывают IRQL до APC_LEVEL перед получением быстрого мьютекса. Драйверы должны использовать ExAcquireFastMutexUnsafe, что не вызывает IRQL, только если одно из следующих значений имеет значение true:
Поток уже запущен в APC_LEVEL.
Поток получает мьютекс в критическом регионе, который ранее был введен вызовом процедуры KeEnterCriticalRegion или FsRtlEnterFileSystem.
Дополнительные сведения о быстрых мьютексах см. в следующих разделах:
быстрые мьютекси и защищенные мьютексы
блокировки, взаимоблокировки и синхронизации
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows 2000 |
заголовка | wdm.h |
IRQL | APC_LEVEL |
правил соответствия DDI | HwStorPortProhibitedDIs(storport) |