Partager via


Macro TraceLoggingStruct (traceloggingprovider.h)

Macro wrapper TraceLogging qui ajoute un champ contenant d’autres champs à l’événement.

Syntaxe

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

Paramètres

[in] fieldCount

Nombre de champs qui seront considérés comme faisant partie de la structure. Ce paramètre doit être une constante au moment de la compilation.

[in] name

Nom à utiliser pour la structure dans l’événement. Le paramètre name doit être un littéral de chaîne (et non une variable) et ne doit pas contenir de caractères « \0 ».

[in, optional] __VA_ARGS__

Paramètres de description et d’étiquettes facultatifs pour la définition de champ.

TraceLoggingStruct peut être spécifié avec 2, 3 ou 4 paramètres. Si aucun paramètre n’est spécifié, une valeur par défaut est utilisée. Par exemple, TraceLoggingStruct(3, "MyStruct") équivaut à TraceLoggingStruct(3, "MyStruct", "", 0).

  • [in, optional] description

    Description de la valeur du champ d’événement. S’il est fourni, le paramètre de description doit être un littéral de chaîne et sera inclus dans le PDB.

  • [in, optional] tags

    Valeur entière constante au moment de la compilation. Les 28 bits faibles de la valeur seront inclus dans les métadonnées du champ. La sémantique de cette valeur est définie par le consommateur d’événements. Pendant le traitement des événements, cette valeur peut être récupérée à partir du champ Balises EVENT_PROPERTY_INFO .

Valeur de retour

None

Remarques

TraceLoggingStruct(fieldCount, name, ...) peut être utilisé comme paramètre pour l’appel d’une macro TraceLoggingWrite . Chaque paramètre TraceLoggingStruct ajoute un champ logique à l’événement. Le champ est une structure ou un groupe qui contient les champs logiques fieldCount suivants comme valeur.

Exemples

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

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista [applications de bureau | applications UWP]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau | applications UWP]
Plateforme cible Windows
En-tête traceloggingprovider.h

Voir aussi

TraceLoggingWrite

Macros du wrapper TraceLogging