Поделиться через


Макрос 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

    Описание значения поля события. Если он указан, параметр description должен быть строковым литералом и будет включен в PDB-файл.

  • [in, optional] tags

    Целочисленное значение константы времени компиляции. Низкие 28 бит значения будут включены в метаданные поля. Семантика этого значения определяется потребителем события. Во время обработки события это значение можно получить из поля EVENT_PROPERTY_INFO Теги.

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

None

Remarks

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
Header traceloggingprovider.h

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

TraceLoggingWrite

Макросы-оболочки TraceLogging