Compartir vía


StopAndRelogTracingSession

El SDK de C++ Build Insights es compatible con Visual Studio 2017 y versiones posteriores. Para ver la documentación de estas versiones, establezca el control de selector de Versión de Visual Studio para este artículo en Visual Studio 2017 o versiones posteriores. Se encuentra en la parte superior de la tabla de contenido de esta página.

La función StopAndRelogTracingSession detiene una sesión de seguimiento en curso y guarda el seguimiento resultante en un archivo temporal. Se inicia de inmediato una sesión de registro con el archivo temporal como entrada. El seguimiento registrado final generado por la sesión de registro se guarda en un archivo que especifica el autor de la llamada. Los ejecutables que llaman a esta función deben tener privilegios de administrador.

Sintaxis

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);

Parámetros

sessionName
Nombre de la sesión de seguimiento que se va a detener. Use el mismo nombre de sesión que se pasó a StartTracingSession, StartTracingSessionA o StartTracingSessionW.

outputLogFile
Archivo en el que se va a escribir el seguimiento registrado generado por la sesión de registro.

estadísticas
Puntero a un objeto TRACING_SESSION_STATISTICS. StopAndRelogTracingSession escribe estadísticas de la colección de seguimientos en este objeto antes de devolver un valor.

numberOfAnalysisPasses
Número de pasos de análisis que se van a ejecutar en el seguimiento. El seguimiento se pasa una vez a través del grupo de analizadores proporcionado por cada paso de análisis.

systemEventsRetentionFlags
Una máscara de bits RELOG_RETENTION_SYSTEM_EVENT_FLAGS que especifica qué eventos de ETW del sistema se mantendrán en el seguimiento registrado.

analyzerGroup
El grupo de analizadores que se usa para la fase de análisis de la sesión de reregistro. Llame a MakeStaticAnalyzerGroup para crear un grupo de analizadores. Si quiere usar un grupo de analizadores dinámico obtenido de MakeDynamicAnalyzerGroup, primero debe pasar su dirección a MakeStaticAnalyzerGroup para encapsularlo dentro de un grupo de analizadores estático.

reloggerGroup
El grupo de registradores que registra eventos en el archivo de seguimiento que se especifica en outputLogFile. Llame a MakeStaticReloggerGroup para crear un grupo de registradores. Si quiere usar un grupo de registradores dinámico obtenido de MakeDynamicReloggerGroup, primero debe pasar su dirección a MakeStaticReloggerGroup para encapsularlo dentro de un grupo de registradores estático.

Valor devuelto

Código de resultado de la enumeración RESULT_CODE.

Comentarios

El seguimiento de entrada se pasa a través del grupo de analizadores la cantidad de veces que indica numberOfAnalysisPasses. No hay ninguna opción similar para las fases de registro. El seguimiento se pasa a través del grupo de registradores solo una vez, después de que se completan todos los pasos de análisis.

No se admite el registro de eventos del sistema como ejemplos de CPU desde una clase de registrador. Use el parámetro systemEventsRetentionFlags para decidir qué eventos del sistema mantener en el seguimiento de salida.