Функция TraceLoggingSetInformation (traceloggingprovider.h)
Настраивает поставщик TraceLogging, вызывая EventSetInformation.
Синтаксис
TLG_STATUS TraceLoggingSetInformation(
TraceLoggingHProvider hProvider,
EVENT_INFO_CLASS informationClass,
PVOID pvInformation,
ULONG cbInformation
);
Параметры
hProvider
Дескриптор для настраиваемого поставщика TraceLogging. Поставщик должен находиться в зарегистрированном состоянии.
informationClass
EVENT_INFO_CLASS настраиваемого параметра.
pvInformation
Входной буфер со значением настраиваемого параметра. Формат этого буфера зависит от значения параметра informationClass .
cbInformation
Размер данных во входном буфере в байтах.
Возвращаемое значение
При вызове этой функции из кода пользовательского режима функция возвращает .HRESULT
Используйте макрос SUCCEEDED()
, чтобы определить, успешно ли выполняется функция.
При вызове этой функции из кода в режиме ядра функция возвращает .NTSTATUS
Используйте макрос NT_SUCCESS()
, чтобы определить, успешно ли выполняется функция.
Комментарии
Эта функция служит оболочкой для функции EventSetInformation .
Функция EventSetInformation доступна не во всех версиях Windows. Поведение traceLoggingSetInformation по умолчанию зависит от значений времени компиляции WINVER
макросов (режим пользователя) или NTDDI_VERSION
(режим ядра):
- Если целевая версия Windows (как указано
WINVER
в илиNTDDI_VERSION
) поддерживает EventSetInformation , traceLoggingSetInformation напрямую вызывает EventSetInformation. - В противном случае TraceLoggingSetInformation будет использовать GetProcAddress (режим пользователя) или MmGetSystemRoutineAddress (режим ядра) для поиска и вызова EventSetInformation. Если это не удается, TraceLoggingSetInformation вернет
HRESULT_FROM_WIN32(ERROR_NOT_SUPPORTED)
(режим пользователя) илиSTATUS_NOT_SUPPORTED
(режим ядра).
Чтобы переопределить поведение этой функции по умолчанию, определите макрос перед выполнением TLG_HAVE_EVENT_SET_INFORMATION
#include <TraceLoggingProvider.h>
:
#define TLG_HAVE_EVENT_SET_INFORMATION 0
В этом случае TraceLoggingSetInformation ничего не делает и возвращает (HRESULT_FROM_WIN32(ERROR_NOT_SUPPORTED)
режим пользователя) илиSTATUS_ENTRYPOINT_NOT_FOUND
(режим ядра).- В этом
#define TLG_HAVE_EVENT_SET_INFORMATION 1
случае TraceLoggingSetInformation напрямую вызывает EventSetInformation. #define TLG_HAVE_EVENT_SET_INFORMATION 2
В этом случае TraceLoggingSetInformation вызовет EventSetInformation через GetProcAddress (пользовательский режим) или MmGetSystemRoutineAddress (режим ядра).
Дополнительные сведения см. в комментариях в заголовке TraceLoggingProvider.h
, касающихся макроса TLG_HAVE_EVENT_SET_INFORMATION
.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows Server 2008 [классические приложения | Приложения UWP] |
Верхняя часть | traceloggingprovider.h |
Библиотека | Advapi32.lib |