イベント トレース MOF 修飾子
プロバイダー MOF クラス、イベント MOF クラス、イベント型 MOF クラス、およびイベント型MOF クラスのプロパティを作成するときは、このセクションで定義されている修飾子を使用します。 これらの修飾子の一部を含む例については、「 イベント スキーマの発行」を参照してください。
プロバイダー MOF クラス修飾子
次の表に、プロバイダー MOF クラスで指定できる修飾子を示します。
修飾子 | データ型 | 説明 |
---|---|---|
Guid | String | 必須。 プロバイダーを一意に識別する文字列 Guid。 たとえば、Guid("{3F92E6E0-9886-434e-85DB-0D11D3904C0A}")。 これは、 RegisterTraceGuids 関数を呼び出してプロバイダーを登録するときに使用する GUID と同じです。 |
イベント MOF クラス修飾子
次の表に、イベント クラス (関連するイベント型クラスをグループ化する親クラス) で指定できる修飾子を示します。
修飾子 | データ型 | 説明 |
---|---|---|
Guid | String | 必須。 イベントのクラスを識別する文字列 Guid。 たとえば、Guid("{3F92E6E0-9886-434e-85DB-0D11D3904C0A}")。 イベント プロバイダーは Guid を使用してEVENT_TRACE_HEADERを設定します 。Guid メンバー。コンシューマーが受信しているイベントのクラスを決定できるようにします。 |
EventVersion | 整数 | この修飾子は、イベント トレース クラスの最新バージョンでは省略可能であり、すべての古いバージョンの クラスに必要です。 クラスの最新バージョンでは、 EventVersion 修飾子が指定されていないか、最も高いバージョン番号が指定されています。 バージョン番号は、EventVersion(0 など) で始まります。通常、クラスの新しいバージョンを作成する場合は、前のバージョン <の名前を classname> に変更します_Vn n は 0 から始まる増分番号です。 例については、「 FileIo 」と 「FileIo_V0」を参照してください。 |
イベント型 MOF クラス修飾子
次の表に、イベント型クラス (イベント プロパティ データを定義するクラス) で指定できる修飾子を示します。
修飾子 | 値 | 説明 |
---|---|---|
EventType | 整数 | 必須。 イベント型クラスを識別します。 たとえば、EventType(1) などです。 イベント プロバイダーは、同じイベントの種類の値を使用してEVENT_TRACE_HEADERを設定します 。Class.Type。 同じ MOF クラスを複数のイベント型に使用する場合 (同じイベント データを使用するため)、イベントの種類の値を整数の配列 (EventType{12,15} など) として指定します。 |
EventTypeName | String | 省略可能。 イベントの種類について説明します。 たとえば、EventTypeName("Start")。 同じ MOF クラスを複数のイベント型に使用する場合 (同じイベント データを使用するため)、EventTypeName{"Start"、"End"} などの文字列の配列としてイベントの種類の名前の値を指定します。 EventTypeName 配列の要素は、EventType 配列に直接対応します。 |
プロパティ修飾子
次の表に、プロパティで指定できる修飾子の一覧を示します。
修飾子 | 説明 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
ビットマップ | 文字列値にマップするビット位置を指定します。 この修飾子を指定する場合は、 BitValues 修飾子も指定する必要があります。 | ||||||||||
BitValues | 文字列値。 BitMap 修飾子も指定した場合、文字列は BitMap 修飾子の値に直接対応します。 それ以外の場合は、プロパティ値が値文字列への 1 から始まるインデックスであるとします (ビット 1 はリスト内の最初の文字列に対応します)。 | ||||||||||
拡張子 | データを使用 (解釈) する方法に関する追加情報を提供します。 拡張値では大文字と小文字が区別されません。 値を引用符で囲みます (Extension("Guid"など)。 使用可能な拡張値は次のとおりです。
|
||||||||||
Format | プロパティ データの形式を定義します。 たとえば、文字列プロパティに Format("w") を含めると、文字列がワイド文字列であることを示します。 次のいずれかの値になります。
|
||||||||||
ポインター | プロパティにポインター値が含まれていることを示します。 ポインター値のサイズは、イベントのログ記録に使用されるオペレーティング システムによって異なります。ペイロードには、32 ビット システムの場合は 4 バイトの値、64 ビット システムの場合は 8 バイトの値が含まれます。 MOF データ型は オブジェクトである必要があります。 プロパティに SizeT 拡張機能が含まれている場合、コンシューマーはデータ型と Format 修飾子を無視する必要があります。 プロパティに対して読み取るデータのサイズを決定するには、次の値を使用します。
Windows Vista より前:PointerSize 値が正確でない可能性があります。 たとえば、64 ビット コンピューターでは、32 ビット アプリケーションは 4 バイト ポインターをログに記録します。ただし、セッションでは PointerSize が 8 に設定されます。 一部のイベントでは 、Pointer の代わりに PointerType が使用されることに注意 してください。 PointerType は使用しないでください。 |
||||||||||
StringTermination | 文字列プロパティの終了方法を示します。 たとえば、StringTermination("NullTerminated") は、文字列プロパティが null で終了したことを示します。 次のいずれかの値になります。
|
||||||||||
ValueDescriptions | Values 修飾子の各値について説明します。 TdhEnumerateProviderFieldInformation 関数と TdhQueryProviderFieldInformation 関数は、キーワード (keyword)およびレベル情報を取得しようとすると、これらの説明を返します。 説明は省略可能です。 説明を指定しない場合、関数は NULL を返します。 詳細については、「 プロバイダーのレベルと有効化フラグ値の指定 」を参照してください。 | ||||||||||
ValueMap | 文字列値にマップする整数インデックスまたはフラグ値を指定します。 この修飾子を指定する場合は、 Values 修飾子と、必要に応じて ValueType 修飾子も指定する必要があります。 ETW では、値マップ値の文字列を持つ WMI オプションはサポートされていないことに注意してください。
次の例は、ValueMap、Values、および ValueType 修飾子を使用する方法を示しています。
|
||||||||||
値 | 文字列値。 ValueMap 修飾子も指定した場合、文字列は ValueMap 修飾子の値に直接対応します。 それ以外の場合は、プロパティ値が値文字列の 0 から始まるインデックスであると仮定します。 | ||||||||||
ValueType | ValueMap 値が整数のインデックス値またはビット フラグ値であるかどうかを示します。 この修飾子を指定しない場合は、整数のインデックス値が想定されます。 値が整数のインデックス値であることを指定するには、ValueType("index") を使用します。 値がビット フラグ値であることを指定するには、ValueType("flag") を使用します。 | ||||||||||
WmiDataId | 各プロパティには 、WmiDataId 修飾子が含まれている必要があります。 WmiDataId は 、コンシューマーがイベント データを読み取る順序を定義します。 WmiDataId の値は 1 から始まり、 クラスの各プロパティに対してインクリメントされます。 たとえば、WmiDataId(1) などです。 | ||||||||||
XMLFragment | データが XML 形式であり、それ以上書式設定せずに表示する準備ができていることを示します。 |
プロバイダーのレベルと有効化フラグの値を指定する
レベルを文書化し、コントローラーがプロバイダーを有効にするために使用するフラグを有効にするには、プロバイダー MOF クラスに "Level" プロパティと "Flags" プロパティを含めます。 Level プロパティと Flags プロパティ名では、大文字と小文字が区別されます。 プロパティには 、可能 なレベルを指定し、フラグ値を有効にする Values 修飾子と ValueMap 修飾子が含まれている必要があります。 有効フラグ 値の ValueMap はビット (フラグ) 値である必要があります。 ValueDescriptions 修飾子は省略可能ですが、使用可能な各値の説明を提供するために使用する必要があります。 説明は、だれかが TdhEnumerateProviderFieldInformation 関数と TdhQueryProviderFieldInformation 関数を呼び出して、プロバイダーの使用可能なレベルと有効フラグ (キーワード) 値を取得するときに使用されます。
次に、使用可能なレベルを指定し、フラグ値を有効にするプロバイダー クラスを示します。
[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;
};