クラシック プロバイダーでの関連イベントの書き込み
クラシック プロバイダーは 、TraceEventInstance 関数を使用して、1 つのトランザクションの一部であるイベントをトレースします。 この関数を使用して、親子イベントをトレースすることもできます。
TraceEventInstance 関数を呼び出す前に、まず CreateTraceInstanceId 関数を呼び出してトランザクション識別子を取得する必要があります。 この関数は、一意のトランザクション識別子を生成し、登録されたクラス GUID ハンドルにマップします。 登録済みクラス GUID のハンドルは、RegisterTraceGuids 関数を呼び出した後、TRACE_GUID_REGISTRATION構造体の RegHandle メンバーで使用できます。 トランザクション識別子は、CreateTraceInstanceId 関数に渡すEVENT_INSTANCE_INFO構造体の InstanceId メンバーに配置されます。
TraceEventInstance 関数に渡されるEVENT_INSTANCE_HEADER構造体は、インスタンスに関連する追加情報が含まれており、Guid メンバーが含まれていない点を除き、EVENT_TRACE_HEADER構造体に似ています (「トレース イベント」を参照)。
イベント インスタンスを使用して、イベント間の階層関係を確立できます。 TraceEventInstance 関数は、2 つのイベント インスタンスからインスタンス固有の情報を受け入れます。 pInstInfo パラメーターはイベント インスタンスのEVENT_INSTANCE_INFO構造体を指し、pParentInstInfo パラメーターは親イベント インスタンスのEVENT_INSTANCE_INFO構造体を指します。 "親" イベント インスタンスの定義は、アプリケーション定義です。親には、既に生成されている任意のインスタンスを指定できます。