Macro TraceLoggingStruct (traceloggingprovider.h)
Macro wrapper traceLogging che aggiunge un campo contenente altri campi all'evento.
Sintassi
void TraceLoggingStruct(
[in] fieldCount,
[in] name,
[in, optional] __VA_ARGS__
);
Parametri
[in] fieldCount
Numero di campi che verranno considerati parte della struttura. Questo parametro deve essere una costante in fase di compilazione.
[in] name
Nome da usare per la struttura nell'evento. Il parametro name deve essere un valore letterale stringa (non una variabile) e non deve contenere caratteri '\0'.
[in, optional] __VA_ARGS__
Parametri facoltativi di descrizione e tag per la definizione del campo.
TraceLoggingStruct può essere specificato con 2, 3 o 4 parametri. Se non viene specificato un parametro, verrà usato un valore predefinito. Ad esempio, TraceLoggingStruct(3, "MyStruct")
equivale a TraceLoggingStruct(3, "MyStruct", "", 0)
.
[in, optional] description
Descrizione del valore del campo evento. Se specificato, il parametro di descrizione deve essere un valore letterale stringa e verrà incluso nel PDB.
[in, optional] tags
Valore intero costante compilazione.A compile-time integer value. I 28 bit bassi del valore verranno inclusi nei metadati del campo. La semantica di questo valore è definita dal consumer di eventi. Durante l'elaborazione degli eventi, questo valore può essere recuperato dal campo Tag di EVENT_PROPERTY_INFO .
Valore restituito
nessuno
Osservazioni
TraceLoggingStruct(fieldCount, name, ...)
può essere usato come parametro per una chiamata di una macro TraceLoggingWrite . Ogni parametro TraceLoggingStruct aggiunge un campo logico all'evento. Il campo è una struttura o un gruppo che contiene i campi logici fieldCount successivi come valore.
Esempio
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));
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows Vista [app desktop | App UWP] |
Server minimo supportato | Windows Server 2008 [app desktop | App UWP] |
Piattaforma di destinazione | Windows |
Intestazione | traceloggingprovider.h |