TdhGetPropertySize 函数 (tdh.h)
检索事件数据中一个或多个属性值的大小。
语法
TDHSTATUS TdhGetPropertySize(
[in] PEVENT_RECORD pEvent,
[in] ULONG TdhContextCount,
[in] PTDH_CONTEXT pTdhContext,
[in] ULONG PropertyDataCount,
[in] PPROPERTY_DATA_DESCRIPTOR pPropertyData,
[out] ULONG *pPropertySize
);
参数
[in] pEvent
传递给 EventRecordCallback 回调的事件记录。 有关详细信息,请参阅 EVENT_RECORD 结构。
[in] TdhContextCount
pTdhContext 中的元素数。
[in] pTdhContext
仅适用于 WPP 或经典 ETW 事件的上下文值数组,否则为 NULL。 有关详细信息,请参阅 TDH_CONTEXT 结构。 数组不得包含重复的上下文类型。
[in] PropertyDataCount
pPropertyData 中的数据描述符结构的数目。
[in] pPropertyData
PROPERTY_DATA_DESCRIPTOR结构的数组,这些结构定义要检索其大小的属性。
可以将此相同的数组传递给 TdhGetProperty 函数以检索属性数据。
如果要检索不是结构成员的属性的大小,则可以指定单个数据描述符。 如果要检索作为结构成员的属性的大小,请指定包含两个数据描述符的数组, (结构不能包含或引用其他结构) 。 有关指定此参数的详细信息,请参阅下面的示例代码。
[out] pPropertySize
属性的大小(以字节为单位)。 使用此值分配在 TdhGetProperty 函数的 pBuffer 参数中传递的缓冲区。
返回值
如果成功,则返回ERROR_SUCCESS。 否则,此函数除了返回其他返回代码外,还会返回以下返回代码之一。
返回代码 | 说明 |
---|---|
|
找不到事件的架构或未找到指定的映射。
如果使用 MOF 类来定义事件,TDH 将在 WMI 存储库中查找架构。 如果使用清单来定义事件,TDH 会查找提供程序的资源。 如果使用清单,则提供程序元素的 resourceFileName 属性将定义 TDH 预期查找资源的位置。 |
|
一个或多个参数无效。 |
|
清单中的 resourceFileName 属性包含提供程序二进制文件的位置。 注册清单时,该位置将写入注册表。 TDH 无法根据注册的位置找到二进制文件。 |
|
WMI 服务不可用。 |
注解
如果事件是 WPP 或经典 ETW 事件,则可以指定用于帮助分析事件信息的上下文信息。 如果在 EVENT_HEADER 的 Flags 成员中设置了EVENT_HEADER_FLAG_TRACE_MESSAGE标志,则事件是 WPP 事件, (看到 EVENT_RECORD) 的 EventHeader 成员。 如果设置了EVENT_HEADER_FLAG_CLASSIC_HEADER标志,则事件是旧版 ETW 事件。
示例
有关演示如何调用此函数的示例,请参阅 使用 TdhGetProperty 使用事件数据。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 [仅限桌面应用] |
目标平台 | Windows |
标头 | tdh.h |
Library | Tdh.lib |
DLL | Tdh.dll |