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

另请参阅

TraceLoggingWrite

TraceLogging 包装宏