Partilhar via


Relog

O C++ Build Insights SDK é compatível com o Visual Studio 2017 e posterior. Para ver a documentação destas versões, defina o controlo seletor de versão do Visual Studio para este artigo para Visual Studio 2017 ou posterior. Encontra-se na parte superior do índice desta página.

A Relog função é usada para ler eventos MSVC de um rastreamento ETW (Event Tracing for 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 do modelo

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

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

Parâmetros

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

outputLogFile
O arquivo no qual gravar os novos eventos.

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

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

analyzerGroup
O grupo de analisadores usado para a fase de análise da sessão de reinício de ligação. Ligue para 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 o seu endereço para MakeStaticAnalyzerGroup.

reloggerGroup
O grupo de relogger que reregistra eventos no arquivo de rastreamento especificado em outputLogFile. Ligue para 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 o seu endereço para MakeStaticReloggerGroup.

Valor de retorno

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

Observações

O rastreamento de entrada é passado através do grupo de analisador numberOfAnalysisPasses vezes. Não há opção semelhante para reregistrar passes. O traço é passado pelo grupo de relogadores apenas uma vez, depois de todas as passagens de análise estarem concluídas.

Não há suporte para o reregistro de eventos do sistema, como amostras de CPU, de dentro de uma classe de relogger. Use o systemEventsRetentionFlags parâmetro para decidir quais eventos do sistema devem ser mantidos no rastreamento de saída.

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