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