MOF-Qualifizierer für die Ereignisablaufverfolgung
Verwenden Sie die in diesem Abschnitt definierten Qualifizierer, wenn Sie Die MOF-Klasse des Anbieters, die MOF-Ereignisklasse, die MOF-Ereignistypklasse und die Eigenschaften der MOF-Klasse des Ereignistyps erstellen. Ein Beispiel, das einige dieser Qualifizierer enthält, finden Sie unter Veröffentlichen Ihres Ereignisschemas.
MoF-Klassenqualifizierer des Anbieters
In der folgenden Tabelle sind die Qualifizierer aufgeführt, die Sie für eine MOF-Klasse des Anbieters angeben können.
Qualifizierer | Datentyp | BESCHREIBUNG |
---|---|---|
Guid | String | Erforderlich. Zeichenfolgen-GUID, die einen Anbieter eindeutig identifiziert. Beispiel: Guid("{3F92E6E0-9886-434e-85DB-0D11D3904C0A}"). Dies ist die gleiche GUID, die Sie verwenden, wenn Sie die RegisterTraceGuids-Funktion aufrufen, um Ihren Anbieter zu registrieren. |
Event MOF-Klassenqualifizierer
In der folgenden Tabelle sind die Qualifizierer aufgeführt, die Sie für eine Ereignisklasse angeben können (die übergeordnete Klasse, die verwandte Ereignistypklassen gruppiert).
Qualifizierer | Datentyp | BESCHREIBUNG |
---|---|---|
Guid | String | Erforderlich. Zeichenfolgen-GUID, die eine Klasse von Ereignissen identifiziert. Beispiel: Guid("{3F92E6E0-9886-434e-85DB-0D11D3904C0A}"). Ereignisanbieter verwenden die Guid, um die EVENT_TRACE_HEADER festzulegen. Guid-Member , damit Consumer die Klasse von Ereignissen bestimmen können, die sie empfangen. |
EventVersion | Integer | Dieser Qualifizierer ist für die neueste Version einer Ereignisablaufverfolgungsklasse optional und für alle älteren Versionen der Klasse erforderlich. Die neueste Version der Klasse gibt entweder nicht den EventVersion-Qualifizierer an oder weist die höchste Versionsnummer auf. Versionsnummern beginnen mit 0, z. B. EventVersion(0). Wenn Sie eine neue Version der Klasse erstellen, benennen Sie in der Regel auch die vorherige Version in classname>_Vn um<, wobei n eine inkrementelle Zahl ab 0 ist. Ein Beispiel finden Sie unter FileIo und FileIo_V0. |
MoF-Klassenqualifizierer des Ereignistyps
In der folgenden Tabelle sind die Qualifizierer aufgeführt, die Sie für eine Ereignistypklasse angeben können (die Klasse, die die Ereigniseigenschaftendaten definiert).
Qualifizierer | Wert | BESCHREIBUNG |
---|---|---|
EventType | Integer | Erforderlich. Gibt die Ereignistypklasse an. Beispiel: EventType(1). Der Ereignisanbieter verwendet denselben Ereignistypwert, um EVENT_TRACE_HEADER festzulegen. Class.Type. Wenn dieselbe MOF-Klasse für mehrere Ereignistypen verwendet wird (da sie dieselben Ereignisdaten verwenden), geben Sie den Ereignistypwert als Array von ganzen Zahlen an, z. B. EventType{12,15}. |
EventTypeName | String | Optional. Beschreibt den Ereignistyp. Beispiel: EventTypeName("Start"). Wenn dieselbe MOF-Klasse für mehrere Ereignistypen verwendet wird (da sie dieselben Ereignisdaten verwenden), geben Sie den Wert des Ereignistypnamens als Array von Zeichenfolgen an, z. B. EventTypeName{"Start", "End"}. Die Elemente des EventTypeName-Arrays entsprechen direkt dem EventType-Array. |
Eigenschaftenqualifizierer
In der folgenden Tabelle sind die Qualifizierer aufgeführt, die Sie für eine Eigenschaft angeben können.
Qualifizierer | BESCHREIBUNG | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Bitmap | Gibt die Bitpositionen an, die Zeichenfolgenwerten zugeordnet sind. Wenn Sie diesen Qualifizierer angeben, müssen Sie auch den BitValues-Qualifizierer angeben. | ||||||||||
BitValues | Zeichenfolgenwerte. Wenn auch der BitMap-Qualifizierer angegeben wird, entsprechen die Zeichenfolgen direkt den Werten im BitMap-Qualifizierer. Andernfalls wird angenommen, dass der Eigenschaftswert ein 1-basierter Index in den Wertzeichenfolgen ist (Bit 1 entspricht der ersten Zeichenfolge in der Liste). | ||||||||||
Erweiterung | Stellt zusätzliche Informationen zum Nutzen (Interpretieren) der Daten bereit. Beim Erweiterungswert wird die Groß-/Kleinschreibung nicht beachtet. Schließen Sie den Wert in Anführungszeichen ein, z. B. Extension("Guid"). Mögliche Erweiterungswerte sind:
|
||||||||||
Format | Definiert das Format der Eigenschaftendaten. Wenn Sie beispielsweise Format("w") in eine Zeichenfolgeneigenschaft einschließen, wird angegeben, dass die Zeichenfolge eine breite Zeichenfolge ist. Mögliche Werte:
|
||||||||||
Zeiger | Gibt an, dass die -Eigenschaft einen Zeigerwert enthält. Die Größe des Zeigerwerts hängt vom Betriebssystem ab, das zum Protokollieren des Ereignisses verwendet wird. Die Nutzlast enthält einen 4-Byte-Wert für 32-Bit-Systeme oder einen 8-Byte-Wert für 64-Bit-Systeme. Der MOF-Datentyp muss objekt sein. Consumer sollten den Datentyp und den Format-Qualifizierer ignorieren, wenn die Eigenschaft die SizeT-Erweiterung enthält. Verwenden Sie Folgendes, um die Größe der Daten zu bestimmen, die für die Eigenschaft gelesen werden sollen:
Vor Windows Vista: Der PointerSize-Wert ist möglicherweise nicht korrekt. Beispielsweise protokolliert eine 32-Bit-Anwendung auf einem 64-Bit-Computer 4-Byte-Zeiger. Die Sitzung legt pointerSize jedoch auf 8 fest. Beachten Sie, dass einige Ereignisse PointerType anstelle von Pointer verwenden. Verwenden Sie pointerType nicht. |
||||||||||
StringTermination | Gibt an, wie die Zeichenfolgeneigenschaft beendet wird. StringTermination("NullTerminated") gibt beispielsweise an, dass die Zeichenfolgeneigenschaft null-terminated ist. Mögliche Werte:
|
||||||||||
ValueDescriptions | Stellt Beschreibungen für jeden Wert im Qualifizierer Werte bereit. Die Funktionen TdhEnumerateProviderFieldInformation und TdhQueryProviderFieldInformation geben diese Beschreibungen zurück, wenn Sie versuchen, Schlüsselwort (keyword)- und Levelinformationen abzurufen. Die Beschreibungen sind optional. Wenn Sie die Beschreibungen nicht angeben, geben die Funktionen NULL zurück. Weitere Informationen finden Sie unter Angeben von Werten für Ebenen und Aktivieren von Flags für einen Anbieter . | ||||||||||
ValueMap | Gibt die ganzzahligen Index- oder Flagwerte an, die Zeichenfolgenwerten zugeordnet sind. Wenn Sie diesen Qualifizierer angeben, müssen Sie auch den Value-Qualifizierer und optional den ValueType-Qualifizierer angeben. Beachten Sie, dass ETW die WMI-Option mit Zeichenfolgen für Wertezuordnungswerte nicht unterstützt.
Das folgende Beispiel zeigt die Verwendung der Qualifizierer ValueMap, Values und ValueType.
|
||||||||||
Werte | Zeichenfolgenwerte. Wenn auch der ValueMap-Qualifizierer angegeben ist, entsprechen die Zeichenfolgen direkt den Werten im ValueMap-Qualifizierer. Andernfalls wird davon ausgegangen, dass der Eigenschaftswert ein nullbasierter Index in den Wertzeichenfolgen ist. | ||||||||||
ValueType | Gibt an, ob die ValueMap-Werte ganzzahlige Indexwerte oder Bitflagswerte sind. Wenn Sie diesen Qualifizierer nicht angeben, werden ganzzahlige Indexwerte angenommen. Um anzugeben, dass die Werte ganzzahlige Indexwerte sind, verwenden Sie ValueType("index"). Um anzugeben, dass es sich bei den Werten um Bitflagswerte handelt, verwenden Sie ValueType("flag"). | ||||||||||
WmiDataId | Jede Eigenschaft muss den WmiDataId-Qualifizierer enthalten. WmiDataId definiert die Reihenfolge, in der der Consumer die Ereignisdaten liest. Der Wert für WmiDataId beginnt bei 1 und inkrementiert für jede Eigenschaft in der -Klasse. Beispiel: WmiDataId(1). | ||||||||||
XMLFragment | Gibt an, dass die Daten im XML-Format vorliegen und ohne weitere Formatierung angezeigt werden können. |
Angeben von Level- und Enable-Flagwerten für einen Anbieter
Um die Ebene zu dokumentieren und Flags zu aktivieren, die ein Controller zum Aktivieren Ihres Anbieters verwenden würde, fügen Sie die Eigenschaften "Level" und "Flags" in Ihre MOF-Klasse ihres Anbieters ein. Bei den Eigenschaftennamen Level und Flags wird die Groß-/Kleinschreibung beachtet. Die Eigenschaften müssen die Werte - und ValueMap-Qualifizierer enthalten, die die mögliche Ebene angeben und Flagwerte aktivieren. Die ValueMap für die Enable-Flagwerte muss Bitwerte (Flag) sein. Der ValueDescriptions-Qualifizierer ist optional, aber Sie sollten ihn verwenden, um Beschreibungen für jeden möglichen Wert bereitzustellen. Die Beschreibungen werden verwendet, wenn jemand die Funktionen TdhEnumerateProviderFieldInformation und TdhQueryProviderFieldInformation aufruft, um die mögliche Ebene abzurufen und Flags (Schlüsselwörter) für den Anbieter zu aktivieren.
Im Folgenden wird eine Anbieterklasse gezeigt, die die möglichen Werte für die Ebene und die Aktivierung von Flags angibt.
[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;
};