Qualificateurs MOF de suivi d’événements
Utilisez les qualificateurs définis dans cette section lors de la création de votre classe MOF fournisseur, de la classe MOF d’événement, de la classe MOF de type d’événement et des propriétés de la classe MOF de type d’événement. Pour obtenir un exemple qui inclut certains de ces qualificateurs, consultez Publication de votre schéma d’événement.
Qualificateurs de classe MOF du fournisseur
Le tableau suivant répertorie les qualificateurs que vous pouvez spécifier sur une classe MOF de fournisseur.
Qualificateur | Type de données | Description |
---|---|---|
Guid | Chaîne | Obligatoire. Guid de chaîne qui identifie de manière unique un fournisseur. Par exemple, Guid(« {3F92E6E0-9886-434e-85DB-0D11D3904C0A} »). Il s’agit du même GUID que celui que vous utilisez lorsque vous appelez la fonction RegisterTraceGuids pour inscrire votre fournisseur. |
Qualificateurs de classe MOF d’événement
Le tableau suivant répertorie les qualificateurs que vous pouvez spécifier sur une classe d’événements (la classe parente qui regroupe les classes de type d’événement associées).
Qualificateur | Type de données | Description |
---|---|---|
Guid | Chaîne | Obligatoire. Guid de chaîne qui identifie une classe d’événements. Par exemple, Guid(« {3F92E6E0-9886-434e-85DB-0D11D3904C0A} »). Les fournisseurs d’événements utilisent le GUID pour définir le EVENT_TRACE_HEADER. Membre GUID , afin que les consommateurs puissent déterminer la classe d’événements qu’ils reçoivent. |
EventVersion | Integer | Ce qualificateur est facultatif pour la dernière version d’une classe de trace d’événements et est requis pour toutes les versions antérieures de la classe. La dernière version de la classe ne spécifie pas le qualificateur EventVersion ou a le numéro de version le plus élevé. Les numéros de version commencent par 0, par exemple EventVersion(0). En règle générale, lorsque vous créez une nouvelle version de la classe, vous renommez également la version <précédente en classname>_Vn, où n est un nombre incrémentiel commençant à 0. Pour obtenir un exemple, consultez FileIo et FileIo_V0. |
Qualificateurs de classe MOF de type d’événement
Le tableau suivant répertorie les qualificateurs que vous pouvez spécifier sur une classe de type d’événement (la classe qui définit les données de propriété d’événement).
Qualificateur | Valeur | Description |
---|---|---|
EventType | Integer | Obligatoire. Identifie la classe de type d’événement. Par exemple, EventType(1). Le fournisseur d’événements utilise la même valeur de type d’événement pour définir EVENT_TRACE_HEADER. Class.Type. Si la même classe MOF est utilisée pour plusieurs types d’événements (car ils utilisent les mêmes données d’événement), spécifiez la valeur du type d’événement sous forme de tableau d’entiers, par exemple EventType{12,15}. |
EventTypeName | Chaîne | Optionnel. Décrit le type d’événement. Par exemple, EventTypeName(« Start »). Si la même classe MOF est utilisée pour plusieurs types d’événements (car ils utilisent les mêmes données d’événement), spécifiez la valeur du nom du type d’événement sous forme de tableau de chaînes, par exemple EventTypeName{"Start », « End"}. Les éléments du tableau EventTypeName correspondent directement au tableau EventType. |
Qualificateurs de propriété
Le tableau suivant répertorie les qualificateurs que vous pouvez spécifier sur une propriété.
Qualificateur | Description | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Bitmap | Spécifie les positions de bits qui correspondent aux valeurs de chaîne. Si vous spécifiez ce qualificateur, vous devez également spécifier le qualificateur BitValues . | ||||||||||
BitValues | Valeurs de chaîne. Si le qualificateur BitMap est également spécifié, les chaînes correspondent directement aux valeurs du qualificateur BitMap . Dans le cas contraire, supposons que la valeur de propriété est un index de base unique dans les chaînes de valeur (le bit 1 correspond à la première chaîne de la liste). | ||||||||||
Extension | Fournit des informations supplémentaires sur la façon de consommer (interpréter) les données. La valeur d’extension ne respecte pas la casse. Incluez la valeur entre guillemets, par exemple, Extension(« Guid »). Les valeurs d’extension possibles sont les suivantes :
|
||||||||||
Format | Définit le format des données de propriété. Par exemple, l’inclusion de Format(« w ») sur une propriété de chaîne indique que la chaîne est une chaîne large. Les valeurs possibles sont les suivantes :
|
||||||||||
Pointeur | Indique que la propriété contient une valeur de pointeur. La taille de la valeur du pointeur dépend du système d’exploitation utilisé pour journaliser l’événement ; la charge utile contient une valeur de 4 octets pour les systèmes 32 bits ou une valeur de 8 octets pour les systèmes 64 bits. Le type de données MOF doit être objet. Les consommateurs doivent ignorer le type de données et le qualificateur format si la propriété inclut l’extension SizeT . Pour déterminer la taille des données à lire pour la propriété, utilisez :
Avant Windows Vista : La valeur PointerSize peut ne pas être exacte. Par exemple, sur un ordinateur 64 bits, une application 32 bits enregistre des pointeurs de 4 octets ; Toutefois, la session définit PointerSize sur 8. Notez que certains événements utilisent PointerType au lieu de Pointer ; n’utilisez pas PointerType. |
||||||||||
StringTermination | Indique comment la propriété de chaîne est terminée. Par exemple, StringTermination(« NullTerminated ») indique que la propriété de chaîne est terminée par null. Les valeurs possibles sont les suivantes :
|
||||||||||
ValueDescriptions | Fournit des descriptions pour chaque valeur dans le qualificateur Valeurs . Les fonctions TdhEnumerateProviderFieldInformation et TdhQueryProviderFieldInformation retournent ces descriptions lorsque vous essayez de récupérer des informations de mot clé et de niveau. Les descriptions sont facultatives. Si vous ne fournissez pas les descriptions, les fonctions retournent NULL. Pour plus d’informations, consultez Spécification du niveau et de l’activation des valeurs d’indicateurs pour un fournisseur . | ||||||||||
ValueMap | Spécifie les valeurs d’index entiers ou d’indicateur qui sont mappées à des valeurs de chaîne. Si vous spécifiez ce qualificateur, vous devez également spécifier le qualificateur Values et éventuellement le qualificateur ValueType . Notez qu’ETW ne prend pas en charge l’option WMI qui consiste à avoir des chaînes pour les valeurs de mappage de valeurs.
L’exemple suivant montre comment utiliser les qualificateurs ValueMap, Values et ValueType.
|
||||||||||
Valeurs | Valeurs de chaîne. Si le qualificateur ValueMap est également spécifié, les chaînes correspondent directement aux valeurs du qualificateur ValueMap . Sinon, supposons que la valeur de la propriété est un index de base zéro dans les chaînes de valeur. | ||||||||||
ValueType | Indique si les valeurs ValueMap sont des valeurs d’index entiers ou des valeurs d’indicateur de bits. Si vous ne spécifiez pas ce qualificateur, les valeurs d’index entiers sont supposées. Pour spécifier que les valeurs sont des valeurs d’index entiers, utilisez ValueType(« index »). Pour spécifier que les valeurs sont des valeurs d’indicateur de bits, utilisez ValueType(« flag »). | ||||||||||
WmiDataId | Chaque propriété doit contenir le qualificateur WmiDataId . WmiDataId définit l’ordre dans lequel le consommateur lit les données d’événement. La valeur de WmiDataId commence à 1 et s’incrémente pour chaque propriété de la classe . Par exemple, WmiDataId(1). | ||||||||||
XMLFragment | Indique que les données sont au format XML et prêtes à être affichées sans autre mise en forme. |
Spécification des valeurs de niveau et d’activation des indicateurs pour un fournisseur
Pour documenter le niveau et activer les indicateurs qu’un contrôleur utiliserait pour activer votre fournisseur, incluez les propriétés « Level » et « Flags » dans votre classe MOF du fournisseur. Les noms des propriétés Level et Flags respectent la casse. Les propriétés doivent inclure les qualificateurs Values et ValueMap , qui spécifient le niveau possible et activent les valeurs d’indicateur. Le ValueMap pour les valeurs d’indicateur d’activation doit être des valeurs de bits (indicateur). Le qualificateur ValueDescriptions est facultatif, mais vous devez l’utiliser pour fournir des descriptions pour chaque valeur possible. Les descriptions sont utilisées lorsqu’une personne appelle les fonctions TdhEnumerateProviderFieldInformation et TdhQueryProviderFieldInformation pour obtenir le niveau possible et activer les valeurs d’indicateurs (mots clés) pour le fournisseur.
L’exemple suivant montre une classe de fournisseur qui spécifie le niveau possible et active les valeurs d’indicateurs.
[Dynamic,
Description("IIS_Trace") : amended,
guid("{3a2a4e84-4c21-4981-ae10-3fda0d9b0f83}"),
locale("MS\\0x409")]
class IIS_Trace : EventTrace
{
[Description ("Enable Flags") : amended,
ValueDescriptions{
"Allow_tracing_only_selected_requests ",
"IIS_authentication_events ",
"IIS_security_events ",
"IIS_filter_events ",
"IIS_static_file_events ",
"IIS_CGI_events ",
"IIS_compression_events ",
"IIS_cache_events ",
"IIS_request_notifications_events ",
"IIS_module_events ",
"IIS_FastCGI_events "},
DefineValues{
"UseUrlFilter",
"IISAuthentication",
"IISSecurity",
"IISFilter",
"IISStaticFile",
"IISCGI",
"IISCompression",
"IISCache",
"IISRequestNotification",
"IISModule",
"IISFastCGI"},
Values{
"UseUrlFilter",
"IISAuthentication",
"IISSecurity",
"IISFilter",
"IISStaticFile",
"IISCGI",
"IISCompression",
"IISCache",
"IISRequestNotification",
"IISModule",
"IISFastCGI"},
ValueMap{
"0x00000001",
"0x00000002",
"0x00000004",
"0x00000008",
"0x00000010",
"0x00000020",
"0x00000040",
"0x00000080",
"0x00000100",
"0x00000200",
"0x00001000"}: amended
]
uint32 Flags;
[Description ("Levels") : amended,
ValueDescriptions{
"Abnormal exit or termination",
"Severe errors that need logging",
"Warnings such as allocation failure",
"Includes non-error cases",
"Detailed traces from intermediate steps" } : amended,
DefineValues{
"TRACE_LEVEL_FATAL",
"TRACE_LEVEL_ERROR",
"TRACE_LEVEL_WARNING"
"TRACE_LEVEL_INFORMATION",
"TRACE_LEVEL_VERBOSE" },
Values{
"Fatal",
"Error",
"Warning",
"Information",
"Verbose" },
ValueMap{
"0x1",
"0x2",
"0x3",
"0x4",
"0x5" },
ValueType("index")
]
uint32 Level;
};