Функция FltAcquirePushLockExclusiveEx (fltkernel.h)

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

Синтаксис

VOID FLTAPI FltAcquirePushLockExclusiveEx(
  [in, out] PEX_PUSH_LOCK PushLock,
            ULONG         Flags
);

Параметры

[in, out] PushLock

Непрозрачный указатель принудительной блокировки. Этот указатель должен быть инициализирован предыдущим вызовом FltInitializePushLock.

Flags

Битовая маска флагов, управляющих атрибутами блокировки. Флаги могут иметь следующее значение.

Flag Значение
FLT_PUSH_LOCK_DISABLE_AUTO_BOOST Отключите функцию автоматического увеличения принудительная блокировка.
FLT_PUSH_LOCK_ENABLE_AUTO_BOOST Устаревшие; не имеет эффекта. Включает автоматическое увеличение принудительная блокировка.

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

Нет.

Remarks

FltAcquirePushLockExclusiveEx получает заданную push-блокировку для монопольного доступа вызывающего потока.

Push-блокировки похожи на структуры ERESOURCE (также называемые ресурсами) тем, что их можно получить для общего или монопольного доступа. Дополнительные сведения о принудительной блокировке см. в справочной записи для FltInitializePushLock.

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

Когда вызывающему объекту будет предоставлен монопольный доступ к заданной принудительной блокировке, зависит от следующего:

  • Если принудительная блокировка в настоящее время не является владельцем, к текущему потоку немедленно предоставляется монопольный доступ.

  • Если принудительная блокировка уже была получена для монопольного или общего доступа другим потоком, текущий поток переходит в состояние ожидания, пока не будет получена блокировка push-уведомлений.

Требования

Требование Значение
Заголовок fltkernel.h
Библиотека FltMgr.lib

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

FltInitializePushLock