Relog
C++ Build Insights SDK 與 Visual Studio 2017 和更新版本相容。 若要查看這些版本的檔,請將本文的 Visual Studio 版本 選取器控制項設定為 Visual Studio 2017 或更新版本。 其位於此頁面目錄頂端。
函 Relog
式可用來從 Windows 事件追蹤 (ETW) 追蹤讀取 MSVC 事件,並將其寫入新的修改 ETW 追蹤中。
語法
template <
typename... TAnalyzerGroupMembers,
typename... TReloggerGroupMembers>
RESULT_CODE Relog(
const char* inputLogFile,
const char* outputLogFile,
unsigned numberOfAnalysisPasses,
unsigned long long systemEventsRetentionFlags,
StaticAnalyzerGroup<TAnalyzerGroupMembers...> analyzerGroup,
StaticReloggerGroup<TReloggerGroupMembers...> reloggerGroup);
template <
typename... TAnalyzerGroupMembers,
typename... TReloggerGroupMembers>
RESULT_CODE Relog(
const wchar_t* inputLogFile,
const wchar_t* outputLogFile,
unsigned numberOfAnalysisPasses,
unsigned long long systemEventsRetentionFlags,
StaticAnalyzerGroup<TAnalyzerGroupMembers...> analyzerGroup,
StaticReloggerGroup<TReloggerGroupMembers...> reloggerGroup);
參數
TAnalyzerGroupMembers
這個參數一律會推斷。
TReloggerGroupMembers
這個參數一律會推斷。
inputLogFile
您想要從中讀取事件的輸入 ETW 追蹤。
outputLogFile
要在其中寫入新事件的檔案。
numberOfAnalysisPasses
在輸入追蹤上執行的分析傳遞數目。 追蹤會在每個分析階段通過所提供的分析器群組一次。
systemEventsRetentionFlags
位元遮罩,指定要保留在重新記錄追蹤中的系統 ETW 事件。 如需詳細資訊,請參閱 RELOG_RETENTION_SYSTEM_EVENT_FLAGS 。
analyzerGroup
用於重新記錄會話分析階段的分析器群組。 呼叫 MakeStaticAnalyzerGroup 以建立分析器群組。 若要使用從 MakeDynamicAnalyzerGroup 取得的動態分析器群組,請先將位址傳遞至 ,將其封裝在 MakeStaticAnalyzerGroup
靜態分析器群組內。
reloggerGroup
重新記錄器群組,會將事件重新記錄到 outputLogFile 中指定的 追蹤檔案中。 呼叫 MakeStaticReloggerGroup 以建立重新記錄器群組。 若要使用從 MakeDynamicReloggerGroup 取得的動態重新記錄器群組,請先將位址傳遞至 ,將其封裝在 MakeStaticReloggerGroup
靜態重新記錄器群組內。
傳回值
來自 RESULT_CODE 列舉的結果碼。
備註
輸入追蹤會透過分析器組 數OfAnalysisPasses 時間傳遞。 重新記錄傳遞沒有類似的選項。 在完成所有分析階段之後,追蹤只會通過重新記錄器群組一次。
不支援從重新記錄器類別內重新記錄系統事件,例如 CPU 範例。 使用 systemEventsRetentionFlags 參數來決定要保留在輸出追蹤中的系統事件。
函 relog
式取決於 COM API。 您必須先呼叫 CoInitialize
,才能呼叫 relog
。 完成後,呼叫 CoUninitialize
一次 relog
。 如果您 relog
呼叫時未先呼叫 CoInitialize
,您會收到錯誤碼 9 ( RESULT_CODE_FAILURE_START_RELOGGER
)。