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 |