CreateTraceInstanceId 関数 (evntrace.h)
RegisterTraceGuids ベース ("クラシック") イベント プロバイダーは、CreateTraceInstanceId 関数を使用して一意のトランザクション識別子を作成し、登録ハンドルにマップできます。 プロバイダーは、 TraceEventInstance 関数を呼び出すときにトランザクション識別子を使用して、指定されたトランザクションに属するイベントとしてマークします。 トランザクション識別子は、トレース分析ツールでイベントをグループ化するために使用できます。
構文
ULONG WMIAPI CreateTraceInstanceId(
[in] HANDLE RegHandle,
[out] PEVENT_INSTANCE_INFO InstInfo
);
パラメーター
[in] RegHandle
登録済みのイベント トレース クラスを処理します。 RegisterTraceGuids 関数は、TRACE_GUID_REGISTRATION構造体の RegHandle メンバーでこのハンドルを返します。
[out] InstInfo
EVENT_INSTANCE_INFO構造体へのポインター。 この構造体の InstanceId メンバーには、トランザクション識別子が含まれています。
戻り値
関数が成功した場合、戻り値はERROR_SUCCESS。
関数が失敗した場合、戻り値は システム エラー コードの 1 つです。 一般的なエラーとその原因を次に示します。
ERROR_INVALID_PARAMETER
次のいずれかが当てはまります。
- RegHandle は NULL です。
- pInstInfo は NULL です。
注釈
RegisterTraceGuids ベース ("クラシック") プロバイダーは、この関数を呼び出します。 EventRegister ベース ("真紅") プロバイダーと同様の機能には、 EventActivityIdControl を使用します。
ETW はユーザー モード プロセスで識別子を作成するため、異なるプロセス内の異なるインスタンスに対して同じ数が返される可能性があります。 InstanceId が ULONG の最大値に達すると、値は最初からやり直1
されます。 CreateTraceInstanceId 関数を呼び出すことができるのは、ユーザー モード プロバイダーだけです (ドライバーはこの関数を呼び出せません)。
例
CreateTraceInstanceId を使用する例については、「イベント インスタンスのトレース」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | evntrace.h |
Library | Advapi32.lib |
[DLL] | Advapi32.dll |