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