Compartilhar 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 de modelo

TAnalyzerGroupMembers
Esse pacote de parâmetros de modelo é sempre deduzido.

TReloggerGroupMembers
Esse pacote de parâmetros de modelo é sempre deduzido.

Parâmetros

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, consulte 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 de 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 de MakeDynamicReloggerGroup, primeiro encapsule-o em um grupo de relogger estático passando seu endereço para MakeStaticReloggerGroup.

Valor de retorno

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

Observações

O rastreamento de entrada é passado pelo grupo de analisador numberOfAnalysisPasses vezes. Não há nenhuma opção semelhante para passagens de novo registro. O traço é passado pelo grupo do relogger apenas uma vez, após todas as análises serem 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 systemEventsRetentionFlags parâmetro para decidir quais eventos do sistema manter no rastreamento de saída.

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