Macro TraceLoggingStruct (traceloggingprovider.h)

Macro contenedora traceLogging que agrega un campo que contiene otros campos al evento.

Sintaxis

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

Parámetros

[in] fieldCount

Número de campos que se considerarán parte de la estructura. Este parámetro debe ser una constante en tiempo de compilación.

[in] name

Nombre que se va a usar para la estructura en el evento . El parámetro name debe ser un literal de cadena (no una variable) y no debe contener ningún carácter '\0'.

[in, optional] __VA_ARGS__

Parámetros opcionales de descripción y etiquetas para la definición de campo.

TraceLoggingStruct se puede especificar con 2, 3 o 4 parámetros. Si no se especifica un parámetro, se usará un valor predeterminado. Por ejemplo, TraceLoggingStruct(3, "MyStruct") es equivalente a TraceLoggingStruct(3, "MyStruct", "", 0).

  • [in, optional] description

    Descripción del valor del campo de evento. Si se proporciona, el parámetro description debe ser un literal de cadena y se incluirá en la PDB.

  • [in, optional] tags

    Valor entero constante en tiempo de compilación. Los 28 bits inferiores del valor se incluirán en los metadatos del campo. El consumidor de eventos define la semántica de este valor. Durante el procesamiento de eventos, este valor se puede recuperar del campo Etiquetas de EVENT_PROPERTY_INFO .

Valor devuelto

None

Observaciones

TraceLoggingStruct(fieldCount, name, ...) se puede usar como parámetro para una invocación de una macro TraceLoggingWrite . Cada parámetro TraceLoggingStruct agrega un campo lógico al evento. El campo es una estructura o grupo que contiene los campos lógicos fieldCount subsiguientes como su valor.

Ejemplos

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

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista [aplicaciones de escritorio | aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2008 [aplicaciones de escritorio | aplicaciones para UWP]
Plataforma de destino Windows
Encabezado traceloggingprovider.h

Consulte también

TraceLoggingWrite

Macros contenedoras traceLogging