Функция EventEnabled (evntprov.h)
Определяет, должен ли поставщик событий создавать определенное событие на основе EVENT_DESCRIPTOR события.
Возвращает значение FALSE , если трассировка событий Windows может быстро определить, что ни один сеанс не прослушивает указанное событие от заданного поставщика. В противном случае возвращает значение TRUE.
Синтаксис
BOOLEAN EVNTAPI EventEnabled(
[in] REGHANDLE RegHandle,
[in] PCEVENT_DESCRIPTOR EventDescriptor
);
Параметры
[in] RegHandle
Дескриптор регистрации поставщика. Дескриптор поступает из EventRegister.
Если RegHandle имеет значение NULL, EventEnabled возвращает значение FALSE.
[in] EventDescriptor
EVENT_DESCRIPTOR , предоставляющий сведения, которые будут использоваться для определения того, включено ли событие. Сюда входят уровень события (серьезность) и ключевое слово (категории).
Возвращаемое значение
Возвращает значение FALSE , если поставщик должен пропустить создание события, т. е. возвращает значение FALSE , если трассировка событий Windows может быстро определить, что ни один сеанс сбора событий не будет записывать событие от заданного поставщика с указанным дескриптором. В противном случае возвращает значение TRUE, указывающее, что поставщик должен создать событие.
Комментарии
Этот API предоставляет простой способ определить, включено ли событие (т. е. заинтересованы ли какие-либо сеансы потребителя события в получении события) на основе дескриптора поставщика и дескриптора события.
Примечание
Этот API выполняет консервативный быстрый тест. Этот API может возвращать значение true в некоторых случаях, когда последующая глубокая фильтрация определит, что сеансы не должны записывать событие.
Этот API предоставляет функциональные возможности, аналогичные функциям, предоставляемым EventProviderEnabled. Если поставщик имеет доступ к полному EVENT_DESCRIPTOR события, поставщик должен использовать EventEnabled. Если поставщик имеет доступ только к уровню и ключевому слову события, поставщик должен использовать EventProviderEnabled.
Большинство поставщиков событий не будут вызывать EventEnabled напрямую:
- API EventWrite включают собственный тест EventEnabled и возвращаются немедленно, если событие не включено.
- Большинство поставщиков ETW используют платформу ETW (например, манифесты или TraceLogging) вместо прямого вызова EventWrite или EventEnabled. Платформы трассировки событий Windows обычно предоставляют собственный API с поддержкой событий, который следует использовать вместо вызова EventEnabled.
- Реализации платформы трассировки событий Windows обычно проверка собственное состояние поставщика, а не вызов EventEnabled.
Требования
Минимальная версия клиента | Windows Vista [только классические приложения] |
Минимальная версия сервера | Windows Server 2008 [только классические приложения] |
Целевая платформа | Windows |
Header | evntprov.h |
Библиотека | Advapi32.lib |
DLL | Advapi32.dll |