分享方式:


ANALYSIS_CALLBACKS 結構

C++ Build Insights SDK 與 Visual Studio 2017 和更新版本相容。 若要查看這些版本的檔,請將本文的 Visual Studio 版本 選取器控制項設定為 Visual Studio 2017 或更新版本。 其位於此頁面目錄頂端。

ANALYSIS_CALLBACKS 初始化 ANALYSIS_DESCRIPTOR RELOG_DESCRIPTOR 物件時,會使用 結構。 它會指定要在分析或重新記錄 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 針對分析會話,在開始任何分析階段之前呼叫。 若要重新記錄會話,請在分析階段開始前呼叫兩次:一次宣佈重新記錄會話的開始,再呼叫一次,再宣佈分析階段的開頭。
OnEndAnalysis 針對分析會話,會在所有分析階段結束之後呼叫此函式。 若要重新記錄會話,當分析階段的所有分析階段都結束時,就會呼叫此函式。 然後,在重新記錄階段結束之後,再次呼叫它。
OnBeginAnalysisPass 在處理任何事件之前,于開始分析階段或重新記錄階段時呼叫。
OnEndAnalysisPass 在處理所有事件之後結束分析階段或重新記錄階段時呼叫。

備註

重新記錄會話的分析階段會被視為重新記錄會話的一部分,而且可能包含多個分析階段。 基於這個理由, OnBeginAnalysis 在重新記錄會話開始時,會在一個資料列中呼叫兩次。 OnEndAnalysis 會在分析階段結束時呼叫,再開始重新記錄階段,然後在重新記錄階段結束時再次呼叫。 重新記錄階段一律包含單一重新記錄階段。

分析器可以同時屬於重新記錄會話的分析階段和重新記錄階段。 這些分析器可以追蹤 OnBeginAnalysis 和 OnEndAnalysis 呼叫配對,以判斷目前進行中的階段。 沒有呼叫的 OnEndAnalysisOnBeginAnalysis 個呼叫表示分析階段正在進行中。 兩 OnBeginAnalysis 個呼叫和一個 OnEndAnalysis 呼叫表示重新記錄階段正在進行中。 兩個 OnBeginAnalysis 和兩個 OnEndAnalysis 呼叫表示兩個階段都已結束。

結構的所有成員 ANALYSIS_CALLBACKS 都必須指向有效的函式。 如需已接受函式簽章的詳細資訊,請參閱 OnAnalysisEventFunc、OnTraceInfoFunc 和 OnBeginEndPassFunc