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


Функция TdhGetProperty (tdh.h)

Извлекает значение свойства из данных события.

Синтаксис

TDHSTATUS TdhGetProperty(
  [in]  PEVENT_RECORD             pEvent,
  [in]  ULONG                     TdhContextCount,
  [in]  PTDH_CONTEXT              pTdhContext,
  [in]  ULONG                     PropertyDataCount,
  [in]  PPROPERTY_DATA_DESCRIPTOR pPropertyData,
  [in]  ULONG                     BufferSize,
  [out] PBYTE                     pBuffer
);

Параметры

[in] pEvent

Запись события, переданная обратному вызову EventRecordCallback . Дополнительные сведения см. в разделе структура EVENT_RECORD .

[in] TdhContextCount

Количество элементов в pTdhContext.

[in] pTdhContext

Массив значений контекста только для событий WPP или классической трассировки событий Windows; в противном случае — NULL. Дополнительные сведения см. в разделе структура TDH_CONTEXT . Массив не должен содержать повторяющиеся типы контекста.

[in] PropertyDataCount

Количество структур дескриптора данных в pPropertyData.

[in] pPropertyData

Массив структур PROPERTY_DATA_DESCRIPTOR , определяющий извлекаемое свойство.

Если вы вызвали функцию TdhGetPropertySize для получения требуемого размера буфера для свойства, можно использовать те же дескрипторы данных.

При получении свойства, которое не является членом структуры, можно указать один дескриптор данных. При получении свойства, являющегося членом структуры, укажите массив из двух дескрипторов данных (структуры не могут содержать другие структуры или ссылаться на них).

[in] BufferSize

Размер буфера pBuffer в байтах. Это значение можно получить из параметра pPropertySize при вызове функции TdhGetPropertySize .

[out] pBuffer

Выделенный пользователем буфер, который получает данные свойства.

Возвращаемое значение

В случае успешного выполнения возвращает ERROR_SUCCESS. В противном случае эта функция возвращает один из следующих кодов возврата в дополнение к другим.

Код возврата Описание
ERROR_NOT_FOUND
Схема для события не найдена или указанное свойство не найдено.
ERROR_INSUFFICIENT_BUFFER
Буфер pBuffer слишком мал. Чтобы получить необходимый размер буфера, вызовите TdhGetPropertySize.
ERROR_INVALID_PARAMETER
Один или несколько параметров являются недопустимыми.
ERROR_FILE_NOT_FOUND
Атрибут resourceFileName в манифесте содержит расположение двоичного файла поставщика. При регистрации манифеста расположение записывается в реестр. TDH не удалось найти двоичный файл на основе зарегистрированного расположения.
ERROR_WMI_SERVER_UNAVAILABLE
Служба WMI недоступна.

Комментарии

Если событие является событием WPP или классическим событием ETW, можно указать контекстные сведения, которые используются для анализа сведений о событии. Событие является событием WPP, если флаг EVENT_HEADER_FLAG_TRACE_MESSAGE установлен в элементе FlagsEVENT_HEADER (см. элемент EventHeaderEVENT_RECORD). Событие является устаревшим событием трассировки событий Windows, если установлен флаг EVENT_HEADER_FLAG_CLASSIC_HEADER.

Список свойств для событий WPP и их типов данных см. в разделе PROPERTY_DATA_DESCRIPTOR.

Примеры

Пример вызова этой функции для получения значения свойства верхнего уровня или элемента структуры см. в разделе Использование TdhGetProperty для использования данных события.

Требования

Требование Значение
Минимальная версия клиента Windows Vista [только классические приложения]
Минимальная версия сервера Windows Server 2008 [только классические приложения]
Целевая платформа Windows
Header tdh.h
Библиотека Tdh.lib
DLL Tdh.dll

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

TdhGetEventInformation

TdhGetPropertySize