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
呼叫配對,以判斷目前進行中的階段。 沒有呼叫的 OnEndAnalysis
兩 OnBeginAnalysis
個呼叫表示分析階段正在進行中。 兩 OnBeginAnalysis
個呼叫和一個 OnEndAnalysis
呼叫表示重新記錄階段正在進行中。 兩個 OnBeginAnalysis 和兩個 OnEndAnalysis
呼叫表示兩個階段都已結束。
結構的所有成員 ANALYSIS_CALLBACKS
都必須指向有效的函式。 如需已接受函式簽章的詳細資訊,請參閱 OnAnalysisEventFunc、OnTraceInfoFunc 和 OnBeginEndPassFunc 。
意見反映
https://aka.ms/ContentUserFeedback。
即將推出:我們會在 2024 年淘汰 GitHub 問題,並以全新的意見反應系統取代並作為內容意見反應的渠道。 如需更多資訊,請參閱:提交及檢視以下的意見反映: