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 函数返回的呈现上下文的句柄。 如果将 Flags 参数设置为 EvtRenderEventXml 或 EvtRenderBookmark,则必须将此参数设置为 NULL

[in] Fragment

事件或书签的句柄。 如果将 Flags 参数设置为 EvtRenderBookmark,请将此参数设置为书签句柄;否则,设置为事件句柄。

[in] Flags

标识要呈现的内容的标志。 例如,整个事件或事件的特定属性。 有关可能的值,请参阅 EVT_RENDER_FLAGS 枚举。

[in] BufferSize

缓冲区的大小(以字节为单位)。

[in] Buffer

将接收呈现的输出的调用方分配的缓冲区。 如果 Flags 参数设置为 EvtRenderEventXml 或 EvtRenderBookmark,则内容为以 null 结尾的 Unicode 字符串。 否则,如果 Flags 设置为 EvtRenderEventValues,则缓冲区包含 EVT_VARIANT 结构的数组;一个用于呈现上下文指定的每个属性。 PropertyCount 参数包含数组中的元素数。

可以将此参数设置为 NULL ,以确定所需的缓冲区大小。

[out] BufferUsed

函数使用的调用方分配的缓冲区的大小(以字节为单位),如果函数失败并出现ERROR_INSUFFICIENT_BUFFER,则为所需的缓冲区大小。

[out] PropertyCount

如果将 Flags 参数设置为 EvtRenderEventValues,则 Buffer 参数中的属性数;否则为零。

返回值

返回代码/值 说明
TRUE
函数成功。
FALSE
函数失败。 调用 GetLastError 函数以获取错误代码。

注解

调用 EvtCreateRenderContext 函数时指定的 XPath 表达式数组与缓冲区中返回的值的数组之间存在一对一关系。

EvtRender 函数中使用来自此函数的EVT_HANDLE时,该函数返回的值列表由 EVT_VARIANT 结构数组组成,每个结构恰好对应于原始 ValuePaths 参数数组中的 XPATH 表达式之一(按外观顺序排列)。 每个此类 EVT_VARIANT 结构都包含由所呈现事件的相应 XPATH 表达式标识的值。 如果未找到值, 则EVT_VARIANT 结构包含 NULL。 如果存在多个值, 则EVT_VARIANT 结构将包含遇到的第一个值。

比较 XPath 查询中的浮点数时要小心。 浮点数的任何字符串表示形式都是近似值,因此 XML 中显示的值可能与随 事件一起存储的数字不匹配。 浮点数应比较为小于或大于常量。

示例

有关演示如何使用此函数的示例,请参阅 呈现事件为事件添加书签

要求

要求
最低受支持的客户端 Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 [仅限桌面应用]
目标平台 Windows
标头 winevt.h
Library Wevtapi.lib
DLL Wevtapi.dll

另请参阅

EvtCreateRenderContext