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

Vedi anche

TraceLoggingWrite

Macro wrapper traceLogging