Поделиться через


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

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

TraceLoggingRegister

EventSetInformation

EVENT_INFO_CLASS