Compartilhar via


Macro TraceLoggingStruct (traceloggingprovider.h)

Macro wrapper TraceLogging que adiciona um campo que contém outros campos ao evento.

Sintaxe

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

Parâmetros

[in] fieldCount

O número de campos que serão considerados parte da estrutura. Esse parâmetro deve ser uma constante de tempo de compilação.

[in] name

O nome a ser usado para a estrutura no evento. O parâmetro name deve ser um literal de cadeia de caracteres (não uma variável) e não deve conter nenhum caractere '\0'.

[in, optional] __VA_ARGS__

Parâmetros opcionais de descrição e marcas para a definição de campo.

TraceLoggingStruct pode ser especificado com 2, 3 ou 4 parâmetros. Se um parâmetro não for especificado, um padrão será usado. Por exemplo, TraceLoggingStruct(3, "MyStruct") é equivalente a TraceLoggingStruct(3, "MyStruct", "", 0).

  • [in, optional] description

    A descrição do valor do campo de evento. Se fornecido, o parâmetro de descrição deve ser um literal de cadeia de caracteres e será incluído no PDB.

  • [in, optional] tags

    Um valor inteiro constante de tempo de compilação. Os 28 bits baixos do valor serão incluídos nos metadados do campo. A semântica desse valor é definida pelo consumidor do evento. Durante o processamento de eventos, esse valor pode ser recuperado do campo Marcas EVENT_PROPERTY_INFO .

Retornar valor

Nenhum

Comentários

TraceLoggingStruct(fieldCount, name, ...) pode ser usado como um parâmetro para uma invocação de uma macro TraceLoggingWrite . Cada parâmetro TraceLoggingStruct adiciona um campo lógico ao evento. O campo é uma estrutura ou grupo que contém os campos lógicos fieldCount subsequentes como seu valor.

Exemplos

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 Valor
Cliente mínimo com suporte Windows Vista [aplicativos da área de trabalho | Aplicativos UWP]
Servidor mínimo com suporte Windows Server 2008 [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho traceloggingprovider.h

Confira também

TraceLoggingWrite

Macros de wrapper traceLogging