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 |