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


Функция 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

См. также

FltInitializePushLock