ANALYSIS_CALLBACKS 構造体

C++ Build Insights SDK は、Visual Studio 2017 以降と互換性があります。 これらのバージョンのドキュメントを表示するには、この記事の Visual Studio バージョン セレクター コントロールを Visual Studio 2017 以降に設定します。 このページの目次の一番上にあります。

ANALYSIS_CALLBACKS 構造体は、ANALYSIS_DESCRIPTOR または RELOG_DESCRIPTOR オブジェクトを初期化するときに使用され、 Event Tracing for Windows (ETW) トレースの分析または再ログ中に呼び出す関数を指定します。

構文

typedef struct ANALYSIS_CALLBACKS_TAG
{
    OnAnalysisEventFunc     OnStartActivity;
    OnAnalysisEventFunc     OnStopActivity;
    OnAnalysisEventFunc     OnSimpleEvent;
    OnTraceInfoFunc         OnTraceInfo;
    OnBeginEndPassFunc      OnBeginAnalysis;
    OnBeginEndPassFunc      OnEndAnalysis;
    OnBeginEndPassFunc      OnBeginAnalysisPass;
    OnBeginEndPassFunc      OnEndAnalysisPass;
} ANALYSIS_CALLBACKS;

メンバー

名前 [説明]
OnStartActivity アクティビティの開始イベントを処理するために呼び出されます。
OnStopActivity アクティビティの停止イベントを処理するために呼び出されます。
OnSimpleEvent 簡易イベントを処理するために呼び出されます。
OnTraceInfo 分析セッションの場合、各分析パスの開始時に呼び出されます。 再ログ セッションの場合、各分析パスの開始時に呼び出され、再ログ パスの開始時に再度呼び出されます。 この関数は、OnBeginAnalysisPass が呼び出された後にのみ呼び出されます。
OnBeginAnalysis 分析セッションの場合、分析パスが開始される前に呼び出されます。 再ログ セッションの場合、分析フェーズが開始される前に 2 回 (再ログ セッションの開始を通知するために 1 回、分析フェーズの開始を通知するためにもう 1 回) 呼び出されます。
OnEndAnalysis 分析セッションの場合、この関数は、すべての分析パスが終了した後に呼び出されます。 再ログ セッションの場合、この関数は、分析フェーズのすべての分析パスが終了したときに呼び出されます。 その後、再ログ パスが終了した後に再度呼び出されます。
OnBeginAnalysisPass 任意のイベントを処理する前に、分析パスまたは再ログ パスの開始時に呼び出されます。
OnEndAnalysisPass すべてのイベントを処理した後、分析パスまたは再ログ パスの終了時に呼び出されます。

注釈

再ログ セッションの分析フェーズは、再ログ セッションの一部と見なされ、複数の分析パスが含まれる場合があります。 このため、OnBeginAnalysis は、再ログ セッションの開始時に連続して 2 回呼び出されます。 OnEndAnalysis は、再ログ フェーズを開始する前に、分析フェーズの終了時に呼び出され、再ログ フェーズの終了時にもう 1 回呼び出されます。 再ログ フェーズには、常に単一の再ログ パスが含まれます。

アナライザーは、再ログ セッションの分析フェーズと再ログ フェーズの両方に含めることができます。 これらのアナライザーでは、OnBeginAnalysis と OnEndAnalysis の呼び出しペアを追跡することにより、現在進行中のフェーズを特定できます。 OnEndAnalysis 呼び出しのない 2 回の OnBeginAnalysis 呼び出しは、分析フェーズが進行中であることを意味します。 2 回の OnBeginAnalysis 呼び出しと 1 回の OnEndAnalysis 呼び出しは、再ログ フェーズが進行中であることを意味します。 2 回の OnBeginAnalysis 呼び出しと 2 回の OnEndAnalysis 呼び出しは、両方のフェーズが終了したことを意味します。

ANALYSIS_CALLBACKS 構造体のすべてのメンバーは、有効な関数を指す必要があります。 許容される関数シグネチャの詳細については、「OnAnalysisEventFunc」、「OnTraceInfoFunc」、「OnBeginEndPassFunc」を参照してください。