TraceLoggingStruct 宏 (traceloggingprovider.h)
TraceLogging 包装器宏 ,用于向事件添加包含其他字段的字段。
语法
void TraceLoggingStruct(
[in] fieldCount,
[in] name,
[in, optional] __VA_ARGS__
);
参数
[in] fieldCount
将被视为结构的一部分的字段数。 此参数必须是编译时常量。
[in] name
要用于事件中的结构的名称。 name 参数必须是字符串文本 (不是) 变量,并且不得包含任何“\0”字符。
[in, optional] __VA_ARGS__
字段定义的可选 说明 和 标记 参数。
TraceLoggingStruct 可以使用 2、3 或 4 个参数指定。 如果未指定参数,将使用默认值。 例如,TraceLoggingStruct(3, "MyStruct")
等效于 TraceLoggingStruct(3, "MyStruct", "", 0)
。
[in, optional] description
事件字段值的说明。 如果提供说明参数,则说明参数必须是字符串文本,并且将包含在 PDB 中。
[in, optional] tags
编译时常量整数值。 该值的低 28 位将包含在字段的元数据中。 此值的语义由事件使用者定义。 在事件处理期间,可以从 “EVENT_PROPERTY_INFO 标记”字段检索此值。
返回值
无
备注
TraceLoggingStruct(fieldCount, name, ...)
可用作 TraceLoggingWrite 宏调用的参数。 每个 TraceLoggingStruct 参数都会向事件添加一个逻辑字段。 字段是一个结构或组,其中包含后续 fieldCount 逻辑字段作为其值。
示例
TraceLoggingWrite(
g_hProvider,
"MyEventWithStruct",
TraceLoggingLevel(WINEVENT_LEVEL_WARNING), // Levels defined in <winmeta.h>
TraceLoggingKeyword(MyEventCategories), // Provider-defined categories
TraceLoggingInt32(num1, "BeforeStruct"),
TraceLoggingStruct(3, "StructWith3Fields"),
TraceLoggingInt32(num2, "StructField1"),
TraceLoggingInt32(num3, "StructField2"),
TraceLoggingInt32(num4, "StructField3"),
TraceLoggingInt32(num5, "AfterStruct));
TraceLoggingWrite(
g_hProvider,
"MyEventWithNestedStruct",
TraceLoggingLevel(WINEVENT_LEVEL_VERBOSE), // Levels defined in <winmeta.h>
TraceLoggingKeyword(MyEventCategories), // Provider-defined categories
TraceLoggingInt32(num1, "BeforeStruct"),
TraceLoggingStruct(3, "StructWith3Fields"),
TraceLoggingInt32(num2, "StructField1"),
TraceLoggingStruct(2, "StructField2"),
TraceLoggingInt32(num3, "StructField2NestedField1"),
TraceLoggingInt32(num4, "StructField2NestedField2"),
TraceLoggingInt32(num5, "StructField3"),
TraceLoggingInt32(num6, "AfterStruct));
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista [桌面应用 | UWP 应用] |
最低受支持的服务器 | Windows Server 2008 [桌面应用 | UWP 应用] |
目标平台 | Windows |
标头 | traceloggingprovider.h |