Qualificateurs MOF de suivi d’événements
Utilisez les qualificateurs définis dans cette section lors de la création de votre de classe MOF du fournisseur, classe MOF d’événement, classe MOF de type d’événementet les 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 fournisseur.
Qualificatif | Type de données | Description |
---|---|---|
guid | chaîne | Obligatoire. Guid de chaîne qui identifie de façon 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 (classe parente qui regroupe les classes de type d’événement associées).
Qualificatif | 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 la EVENT_TRACE_HEADER. Guid membre, afin que les consommateurs puissent déterminer la classe d’événements qu’ils reçoivent. |
EventVersion | entier | 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 <nom de classe>_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 (classe qui définit les données de propriété d’événement).
Qualificatif | Valeur | Description |
---|---|---|
eventType | entier | 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 de type d’événement en tant que 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 de nom de type d’événement comme 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é.
Qualificatif | 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 la propriété est un index de base unique dans les chaînes de valeur (bit 1 correspond à la première chaîne de la liste). | ||||||||||
d’extension | Fournit des informations supplémentaires sur la façon d’utiliser (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, y compris 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 consigner l’événement ; la charge utile contiendra 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 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 journalise les pointeurs 4 octets ; Toutefois, la session définit PointerSize sur 8. Notez que certains événements utilisent PointerType au lieu de pointeur; n’utilisez pas PointerType. |
||||||||||
StringTermination | Indique comment la propriété de chaîne est arrêté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 du 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 activer les valeurs d’indicateurs pour un fournisseur. | ||||||||||
ValueMap | Spécifie l’index entier ou les valeurs d’indicateur qui correspondent aux valeurs de chaîne. Si vous spécifiez ce qualificateur, vous devez également spécifier le qualificateur Valeurs, et éventuellement le qualificateur ValueType. Notez que ETW ne prend pas en charge l’option WMI d’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. Dans le cas contraire, supposons que la valeur de 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 entières ou des valeurs d’indicateur de bits. Si vous ne spécifiez pas ce qualificateur, les valeurs d’index entier 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 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 mise en forme supplémentaire. |
Spécification du niveau et activation des valeurs d’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 la classe MOF de votre fournisseur. Les noms des propriétés Level et Flags respectent la casse. Les propriétés doivent inclure les Valeurs et qualificateurs ValueMap, qui spécifient le niveau possible et activent les valeurs d’indicateur. Les ValueMap pour les valeurs d’indicateur d’activation doivent être des valeurs de bits (indicateur). Les ValueDescriptions qualificateur sont facultatifs, mais vous devez l’utiliser pour fournir des descriptions pour chaque valeur possible. Les descriptions sont utilisées lorsque quelqu’un appelle les fonctions TdhEnumerateProviderFieldInformation et fonctions 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;
};