Функция FltAcquirePushLockExclusiveEx (fltkernel.h)
Подпрограмма FltAcquirePushLock ExclusiveExclusiveEx получает заданную блокировку принудительной отправки для эксклюзивного доступа вызывающим потоком.
Синтаксис
VOID FLTAPI FltAcquirePushLockExclusiveEx(
[in, out] PEX_PUSH_LOCK PushLock,
ULONG Flags
);
Параметры
[in, out] PushLock
Непрозрачный указатель блокировки принудительной блокировки. Этот указатель должен быть инициализирован предыдущим вызовом FltInitializePushLock.
Flags
Битовая маска флагов, управляющих атрибутами блокировки. Флаги могут быть следующим значением.
Флаг | Значение |
---|---|
FLT_PUSH_LOCK_DISABLE_AUTO_BOOST | Отключение автоматического увеличения блокировки push-блокировки. |
FLT_PUSH_LOCK_ENABLE_AUTO_BOOST | Устаревшие; не имеет эффекта. Включает автоматическое повышение блокировки push-блокировки. |
Возвращаемое значение
Никакой.
Замечания
FltAcquirePushLockExclusive Ex получает заданную блокировку принудительной отправки для эксклюзивного доступа вызывающим потоком.
Блокировки push-уведомлений похожи на структуры ERESOURCE (также называемые ресурсами), в том, что они могут быть приобретены для общего или эксклюзивного доступа. Дополнительные сведения о push-блокировках см. в справочной записи для FltInitializePushLock.
В отличие от структур ERESOURCE, блокировки push-уведомлений нельзя получить рекурсивно. Если вызывающий объект уже приобрел блокировку принудительной передачи для монопольного или общего доступа, поток зависнет.
Когда вызывающий объект получит монопольный доступ к заданной блокировке push-уведомлений, зависит от следующего:
Если блокировка принудительной передачи в настоящее время не защищена, монопольный доступ предоставляется немедленно текущему потоку.
Если блокировка принудительной передачи уже приобретена для эксклюзивного или общего доступа другим потоком, текущий поток помещается в состояние ожидания, пока блокировка принудительной передачи не будет получена.
Требования
Требование | Ценность |
---|---|
заголовка | fltkernel.h |
библиотеки | FltMgr.lib |