Share via


TraceLoggingStruct-Makro (traceloggingprovider.h)

TraceLogging-Wrappermakro , das dem Ereignis ein Feld hinzufügt, das andere Felder enthält.

Syntax

void TraceLoggingStruct(
  [in]            fieldCount,
  [in]            name,
  [in, optional]  __VA_ARGS__
);

Parameter

[in] fieldCount

Die Anzahl der Felder, die als Teil der Struktur betrachtet werden. Dieser Parameter muss eine Kompilierzeitkonstante sein.

[in] name

Der Name, der für die Struktur im Ereignis verwendet werden soll. Der name-Parameter muss ein Zeichenfolgenliteral (keine Variable) sein und darf keine "\0"-Zeichen enthalten.

[in, optional] __VA_ARGS__

Optionale Beschreibung und Tags-Parameter für die Felddefinition.

TraceLoggingStruct kann mit 2, 3 oder 4 Parametern angegeben werden. Wenn kein Parameter angegeben wird, wird ein Standardwert verwendet. TraceLoggingStruct(3, "MyStruct") entspricht beispielsweise TraceLoggingStruct(3, "MyStruct", "", 0).

  • [in, optional] description

    Die Beschreibung des Werts des Ereignisfelds. Falls angegeben, muss der Beschreibungsparameter ein Zeichenfolgenliteral sein und wird im PDB enthalten sein.

  • [in, optional] tags

    Ein ganzzahliger Wert für die Kompilierzeitkonstante. Die niedrigen 28 Bit des Werts werden in den Metadaten des Felds enthalten. Die Semantik dieses Werts wird vom Ereignis consumer definiert. Während der Ereignisverarbeitung kann dieser Wert aus dem Feld EVENT_PROPERTY_INFO Tags abgerufen werden.

Rückgabewert

Keine

Bemerkungen

TraceLoggingStruct(fieldCount, name, ...) kann als Parameter für einen Aufruf eines TraceLoggingWrite-Makros verwendet werden. Jeder TraceLoggingStruct-Parameter fügt dem Ereignis ein logisches Feld hinzu. Das Feld ist eine Struktur oder Gruppe, die die nachfolgenden logischen felder fieldCount als Wert enthält.

Beispiele

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));

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile traceloggingprovider.h

Weitere Informationen

TraceLoggingWrite

TraceLogging-Wrappermakros