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