Partilhar via


Relog

O SDK do C++ Build Insights é compatível com o Visual Studio 2017 e posterior. Para ver a documentação dessas versões, defina o controle seletor de Versão do Visual Studio deste artigo para o Visual Studio 2017 ou posterior. Ele é encontrado na parte superior da tabela de conteúdo nesta página.

A função Relog é usada para ler eventos do MSVC de um rastreamento ETW (Rastreamento de Eventos para Windows) e gravá-los em um novo rastreamento ETW modificado.

Sintaxe

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

Parâmetros

TAnalyzerGroupMembers
Esse parâmetro é sempre deduzido.

TReloggerGroupMembers
Esse parâmetro é sempre deduzido.

inputLogFile
O rastreamento ETW de entrada do qual você deseja ler os eventos.

outputLogFile
O arquivo no qual gravar os novos eventos.

numberOfAnalysisPasses
O número de passagens de análise a ser executado no rastreamento de entrada. O rastreamento é passado pelo grupo analisador fornecido uma vez por passagem de análise.

systemEventsRetentionFlags
Uma máscara de bits que especifica quais eventos ETW do sistema devem ser mantidos no rastreamento com novo registro. Para obter mais informações, confira RELOG_RETENTION_SYSTEM_EVENT_FLAGS.

analyzerGroup
O grupo analisador usado para a fase de análise da sessão de novo registro. Chame MakeStaticAnalyzerGroup para criar um grupo de analisadores. Para usar um grupo de analisadores dinâmicos obtido do MakeDynamicAnalyzerGroup, primeiro encapsule-o dentro de um grupo de analisadores estáticos passando seu endereço para MakeStaticAnalyzerGroup.

reloggerGroup
O grupo de relogger que faz novo registro de eventos no arquivo de rastreamento especificado em outputLogFile. Chame MakeStaticReloggerGroup para criar um grupo de relogger. Para usar um grupo de relogger dinâmico obtido do MakeDynamicReloggerGroup, primeiro encapsule-o dentro de um grupo de relogger estático passando seu endereço para MakeStaticReloggerGroup.

Valor de retorno

Um código de resultado da enumeração RESULT_CODE.

Comentário

O rastreamento de entrada é passado por meio do grupo de analisador numberOfAnalysisPasses vezes. Não há nenhuma opção semelhante para passagens de novo registro. O rastreamento é passado pelo grupo de relogger apenas uma vez, depois que todas as passagens de análises forem concluídas.

Não há suporte para o novo registro de eventos do sistema, como exemplos de CPU, dentro de uma classe de criação de registro. Use o parâmetro systemEventsRetentionFlags para decidir quais eventos do sistema manter no rastreamento de saída.

A relog função depende da API COM. Você deve ligar CoInitialize antes de ligar relog. Ligue CoUninitialize uma vez relog terminado. Se você ligar relog sem uma chamada para CoInitialize primeiro, receberá o código de erro 9 (RESULT_CODE_FAILURE_START_RELOGGER).