Функция EvtRender (winevt.h)

Отрисовывает фрагмент XML на основе указанного контекста отрисовки.

Синтаксис

BOOL EvtRender(
  [in]  EVT_HANDLE Context,
  [in]  EVT_HANDLE Fragment,
  [in]  DWORD      Flags,
  [in]  DWORD      BufferSize,
  [in]  PVOID      Buffer,
  [out] PDWORD     BufferUsed,
  [out] PDWORD     PropertyCount
);

Параметры

[in] Context

Дескриптор контекста отрисовки, возвращаемого функцией EvtCreateRenderContext . Этот параметр должен иметь значение NULL , если параметр Flags имеет значение EvtRenderEventXml или EvtRenderBookmark.

[in] Fragment

Дескриптор события или закладки. Задайте для этого параметра дескриптор закладки, если параметр Flags имеет значение EvtRenderBookmark; в противном случае задайте для дескриптора события.

[in] Flags

Флаг, определяющий, что нужно отобразить. Например, все событие или определенные свойства события. Возможные значения см. в перечислении EVT_RENDER_FLAGS .

[in] BufferSize

Размер буфера буфера в байтах.

[in] Buffer

Буфер, выделенный вызывающим объектом, который получит отображаемые выходные данные. Если для параметра Flags задано значение EvtRenderEventXml или EvtRenderBookmark, содержимое является строкой Юникода, заканчивающейся null. В противном случае, если параметру Flags присвоено значение EvtRenderEventValues, буфер содержит массив EVT_VARIANT структур; по одному для каждого свойства, заданного контекстом отрисовки. Параметр PropertyCount содержит количество элементов в массиве.

Для этого параметра можно задать значение NULL , чтобы определить требуемый размер буфера.

[out] BufferUsed

Размер (в байтах) буфера, выделенного вызывающим объектом, используемого функцией, или требуемый размер буфера, если функция завершается сбоем с ERROR_INSUFFICIENT_BUFFER.

[out] PropertyCount

Число свойств в параметре Buffer , если параметру Flags присвоено значение EvtRenderEventValues; в противном случае — ноль.

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

Возвращаемый код или значение Описание
TRUE
Функция выполнена успешно.
FALSE
Сбой функции. Вызовите функцию GetLastError , чтобы получить код ошибки.

Комментарии

Существует связь "один к одному" между массивом выражений XPath, указанным при вызове функции EvtCreateRenderContext , и массивом значений, возвращаемых в буфере.

При использовании EVT_HANDLE из этой функции в функции EvtRender список значений, возвращаемых этой функцией, состоит из массива EVT_VARIANT структур, каждое из которых соответствует точно одному из выражений XPATH в исходном массиве параметров ValuePaths в порядке внешнего вида. Каждая такая структура EVT_VARIANT содержит значение, определяемое соответствующим выражением XPATH для отображаемого события. Если значение не найдено, структура EVT_VARIANT содержит значение NULL. При наличии нескольких значений структура EVT_VARIANT будет содержать первое обнаруженное значение.

Будьте внимательны при сравнении чисел с плавающей запятой в запросах XPath. Любое строковое представление числа с плавающей запятой является приблизительным, поэтому значение, отображаемое в XML, может не совпадать с числом, хранящимся в событии. Числа с плавающей запятой следует сравнивать как меньше или больше константы.

Примеры

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

Требования

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

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

EvtCreateRenderContext