イベント トレース MOF 修飾子
このセクションで定義されている修飾子は、プロバイダーの MOF クラス、イベント MOF クラス、イベント型 MOF クラス、およびイベント型 MOF クラスのプロパティ を作成するときに使用します。 これらの修飾子の一部を含む例については、「Publishing Your Event Schema」を参照してください。
プロバイダー MOF クラス修飾子
次の表に、プロバイダー MOF クラスで指定できる修飾子を示します。
限定詞 | データ型 | 形容 |
---|---|---|
guid の | 文字列 の | 必須。 プロバイダーを一意に識別する文字列 GUID。 たとえば、Guid("{3F92E6E0-9886-434e-85DB-0D11D3904C0A}")。 これは、RegisterTraceGuids 関数を呼び出してプロバイダーを登録するときに使用するのと同じ GUID です。 |
イベント MOF クラス修飾子
次の表に、イベント クラス (関連するイベント型クラスをグループ化する親クラス) で指定できる修飾子を示します。
限定詞 | データ型 | 形容 |
---|---|---|
guid の | 文字列 の | 必須。 イベントのクラスを識別する文字列 GUID。 たとえば、Guid("{3F92E6E0-9886-434e-85DB-0D11D3904C0A}")。 イベント プロバイダーは Guid を使用して EVENT_TRACE_HEADER を設定します。Guid メンバー。コンシューマーは、受信しているイベントのクラスを決定できます。 |
EventVersion | 整数 の | この修飾子は、イベント トレース クラスの最新バージョンでは省略可能であり、すべての古いバージョンのクラスに必要です。 クラスの最新バージョンでは、EventVersion 修飾子が指定されていないか、最も大きいバージョン番号が指定されています。 バージョン番号は 0 で始まります (例: EventVersion(0)。通常、クラスの新しいバージョンを作成する場合は、以前のバージョンの名前もクラス名>_Vn <に変更します。n は 0 から始まる増分番号です。 例については、「FileIo と FileIo_V0」を参照してください。 |
イベント型 MOF クラス修飾子
次の表に、イベント型クラス (イベント プロパティ データを定義するクラス) で指定できる修飾子を示します。
限定詞 | 価値 | 形容 |
---|---|---|
EventType | 整数 の | 必須。 イベント型クラスを識別します。 たとえば、EventType(1)。 イベント プロバイダーは、同じイベントの種類の値を使用して EVENT_TRACE_HEADER を設定します。Class.Type. 同じ MOF クラスを複数のイベント型に使用する場合 (同じイベント データを使用するため)、イベントの種類の値を整数の配列として指定します (例: EventType{12,15})。 |
EventTypeName | 文字列 の | 随意。 イベントの種類について説明します。 たとえば、EventTypeName("Start")。 同じ MOF クラスを複数のイベント型に使用する場合 (同じイベント データを使用するため)、イベント型の名前の値を文字列の配列として指定します (例: EventTypeName{"Start"、"End"})。 EventTypeName 配列の要素は、EventType 配列に直接対応します。 |
プロパティ修飾子
次の表に、プロパティで指定できる修飾子を示します。
限定詞 | 形容 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
BitMap | 文字列値にマップするビット位置を指定します。 この修飾子を指定する場合は、BitValues 修飾子も指定する必要があります。 | ||||||||||
BitValues | 文字列値。 BitMap 修飾子も指定されている場合、文字列は、BitMap 修飾子の値に直接対応します。 それ以外の場合は、プロパティ値が値文字列の 1 から始まるインデックスであると仮定します (ビット 1 はリスト内の最初の文字列に対応します)。 | ||||||||||
拡張機能の | データを使用 (解釈) する方法に関する追加情報を提供します。 拡張値では大文字と小文字が区別されません。 値を引用符で囲みます (例: Extension("Guid")。 使用可能な拡張値は次のとおりです。
|
||||||||||
書式 | プロパティ データの形式を定義します。 たとえば、文字列プロパティに 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 関数は、キーワードとレベルの情報を取得しようとすると、これらの説明を返します。 説明は省略可能です。 説明を指定しない場合、関数は 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 プロパティ名では、大文字と小文字が区別されます。 プロパティには、使用可能なレベルを指定し、フラグ値を有効にする 値 と 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;
};