MOF-Qualifizierer für die Ereignisablaufverfolgung
Verwenden Sie die in diesem Abschnitt definierten Qualifizierer beim Erstellen ihrer -Anbieter-MOF-Klasse, Ereignis MOF-Klasse, Ereignistyp MOF-Klasseund die Eigenschaften der MOF-Klasse des Ereignistyps. Ein Beispiel, das einige dieser Qualifizierer enthält, finden Sie unter Veröffentlichen des Ereignisschemas.
MoF-Klassenqualifizierer des Anbieters
In der folgenden Tabelle sind die Qualifizierer aufgeführt, die Sie für eine MoF-Anbieterklasse angeben können.
Kennzeichner | Datentyp | Beschreibung |
---|---|---|
GUID- | Zeichenfolgen- | 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. |
MoF-Ereignisklassenqualifizierer
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).
Kennzeichner | Datentyp | Beschreibung |
---|---|---|
GUID- | Zeichenfolgen- | Erforderlich. Zeichenfolgen-GUID, die eine Ereignisklasse identifiziert. Beispiel: Guid("{3F92E6E0-9886-434e-85DB-0D11D3904C0A}"). Ereignisanbieter verwenden die GUID, um die EVENT_TRACE_HEADER festzulegen. Guid Mitglied, sodass Consumer die Klasse von Ereignissen bestimmen können, die sie empfangen. |
EventVersion- | ganze Zahl | Dieser Qualifizierer ist optional für die neueste Version einer Ereignisablaufverfolgungsklasse und ist 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 normalerweise eine neue Version der Klasse erstellen, benennen Sie die vorherige Version auch in <Klassenname>_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).
Kennzeichner | Wert | Beschreibung |
---|---|---|
EventType- | ganze Zahl | Erforderlich. Identifiziert die Ereignistypklasse. 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 mit ganzen Zahlen an, z. B. EventType{12,15}. |
EventTypeName- | Zeichenfolgen- | Wahlfrei. 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.
Kennzeichner | 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 der BitMap- Qualifizierer ebenfalls angegeben wird, entsprechen die Zeichenfolgen direkt den Werten im BitMap- Qualifizierer. Andernfalls wird davon ausgegangen, dass der Eigenschaftswert ein 1-basierter Index in den Wertzeichenfolgen ist (Bit 1 entspricht der ersten Zeichenfolge in der Liste). | ||||||||||
Erweiterungs- | Enthält zusätzliche Informationen zur Nutzung (Interpretation) der Daten. Bei dem 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. Beispiel: "Format("w") für eine Zeichenfolgeneigenschaft gibt an, dass die Zeichenfolge eine breite Zeichenfolge ist. Mögliche Werte sind:
|
||||||||||
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 Objektsein. Consumer sollten den Datentyp und Format- Qualifizierer ignorieren, wenn die Eigenschaft die SizeT Erweiterung enthält. Um die Größe der für die Eigenschaft zu lesenden Daten zu bestimmen, verwenden Sie Folgendes:
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 wird jedoch PointerSize- auf 8 festgelegt. Beachten Sie, dass einige Ereignisse PointerType- anstelle von Zeiger-verwenden; verwenden Sie PointerType-nicht. |
||||||||||
StringTermination- | Gibt an, wie die Zeichenfolgeneigenschaft beendet wird. Beispielsweise gibt StringTermination("NullTerminated") an, dass die Zeichenfolgeneigenschaft null-beendet ist. Mögliche Werte sind:
|
||||||||||
ValueDescriptions- | Enthält Beschreibungen für jeden Wert im Werte Qualifizierer. Die funktionen TdhEnumerateProviderFieldInformation und TdhQueryProviderFieldInformation funktionen geben diese Beschreibungen zurück, wenn Sie versuchen, Schlüsselwort- und Ebeneninformationen abzurufen. Die Beschreibungen sind optional. Wenn Sie die Beschreibungen nicht angeben, geben die Funktionen NULL-zurück. Weitere Informationen finden Sie unter Angeben von Ebenen und Aktivieren von Kennzeichenwerten 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 die Werte Qualifizierer und optional den ValueType Qualifizierer angeben. Beachten Sie, dass ETW die WMI-Option nicht unterstützt, Zeichenfolgen für Wertezuordnungswerte zu verwenden.
Das folgende Beispiel zeigt, wie Sie die Qualifizierer ValueMap, Values und ValueType verwenden.
|
||||||||||
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 Bitkennzeichnungswerte 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 die Werte Bitkennzeichnungswerte sind, 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 Schritten für jede Eigenschaft in der Klasse. Beispielsweise WmiDataId(1). | ||||||||||
XMLFragment- | Gibt an, dass die Daten im XML-Format vorliegen und ohne weitere Formatierung angezeigt werden können. |
Angeben von Ebenen und Aktivieren von Flags für einen Anbieter
Um die Ebene zu dokumentieren und Flags zu aktivieren, die ein Controller zum Aktivieren Ihres Anbieters verwenden würde, schließen Sie die Eigenschaften "Level" und "Flags" in die MOF-Klasse ihres Anbieters ein. Bei den Namen der Eigenschaft "Level" und "Flags" wird die Groß-/Kleinschreibung beachtet. Die Eigenschaften müssen die Values und ValueMap Qualifizierern enthalten, die die mögliche Ebene angeben und Flagwerte aktivieren. Die ValueMap- für die Aktivierungskennzeichnungswerte müssen Bitwerte (Flag) sein. Die ValueDescriptions Qualifizierer ist optional, sie sollten jedoch verwendet werden, um Beschreibungen für jeden möglichen Wert bereitzustellen. Die Beschreibungen werden verwendet, wenn jemand die funktionen TdhEnumerateProviderFieldInformation und TdhQueryProviderFieldInformation Funktionen aufruft, um die möglichen Ebenen abzurufen und Flags (Schlüsselwörter) für den Anbieter zu aktivieren.
Im Folgenden finden Sie eine Anbieterklasse, die die mögliche Ebene angibt und Flagswerte aktiviert.
[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;
};