StopAndRelogTracingSession

C++ Build Insights SDK 与 Visual Studio 2017 及更高版本兼容。 若要查看这些版本对应的文档,请将本文的 Visual Studio“版本”选择器控件设置为 Visual Studio 2017 或更高版本。 它位于此页面上目录表的顶部。

StopAndRelogTracingSession 函数用于停止正在进行的跟踪会话并将生成的跟踪保存在临时文件中。 然后,将临时文件用作输入来立即启动重新记录会话。 重新记录会话生成的最终重新记录跟踪保存在由调用方指定的文件中。 调用此函数的可执行文件必须具有管理员权限。

语法

template <
    typename... TAnalyzerGroupMembers,
    typename... TReloggerGroupMembers>
RESULT_CODE StopAndRelogTracingSession(
    const char*                                   sessionName,
    const char*                                   outputLogFile,
    TRACING_SESSION_STATISTICS*                   statistics,
    unsigned                                      numberOfAnalysisPasses,
    unsigned long long                            systemEventsRetentionFlags,
    StaticAnalyzerGroup<TAnalyzerGroupMembers...> analyzerGroup,
    StaticReloggerGroup<TReloggerGroupMembers...> reloggerGroup);

template <
    typename... TAnalyzerGroupMembers,
    typename... TReloggerGroupMembers>
RESULT_CODE StopAndRelogTracingSession(
    const wchar_t*                                sessionName,
    const wchar_t*                                outputLogFile,
    TRACING_SESSION_STATISTICS*                   statistics,
    unsigned                                      numberOfAnalysisPasses,
    unsigned long long                            systemEventsRetentionFlags,
    StaticAnalyzerGroup<TAnalyzerGroupMembers...> analyzerGroup,
    StaticReloggerGroup<TReloggerGroupMembers...> reloggerGroup);

参数

sessionName
要停止的跟踪会话的名称。 使用传递给 StartTracingSessionStartTracingSessionAStartTracingSessionW 的相同会话名称。

outputLogFile
要在其中写入由重新记录会话生成的重新记录跟踪的文件。

statistics
指向 TRACING_SESSION_STATISTICS 对象的指针。 StopAndRelogTracingSession 在返回之前写入此对象中的跟踪集合统计信息。

numberOfAnalysisPasses
要在跟踪上运行的分析传递数。 每个分析传递通过提供的分析器组传递一次跟踪。

systemEventsRetentionFlags
一个 RELOG_RETENTION_SYSTEM_EVENT_FLAGS 位掩码,用于指定哪些系统 ETW 事件要保留在重新记录的跟踪中。

analyzerGroup
用于重新记录会话的分析阶段的分析器组。 调用 MakeStaticAnalyzerGroup 以创建分析器组。 若要使用从 MakeDynamicAnalyzerGroup 中获取的动态分析器组,请先通过将其地址传递给 MakeStaticAnalyzerGroup 来将该组封装在静态分析器组内。

reloggerGroup
将事件重新记录到 outputLogFile 中指定的跟踪文件中的重新记录器组。 调用 MakeStaticReloggerGroup 以创建重新记录器组。 若要使用从 MakeDynamicReloggerGroup 中获取的动态重新记录器组,请先通过将其地址传递给 MakeStaticReloggerGroup 来将该组封装在静态重新记录器组内。

返回值

RESULT_CODE 枚举中的结果代码。

备注

输入跟踪通过分析器组传递 numberOfAnalysisPasses 次。 重新记录传递没有类似的选项。 在所有分析传递完成后,通过重新记录器组只会传递一次跟踪。

不支持重新记录来自重新记录器类中的系统事件(如 CPU 示例)。 使用 systemEventsRetentionFlags 参数确定要保留在输出跟踪中的系统事件。