Compartilhar via


estrutura ANALYSIS_CALLBACKS

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 estrutura ANALYSIS_CALLBACKS é usada ao inicializar um objeto ANALYSIS_DESCRIPTOR ou RELOG_DESCRIPTOR. Ela especifica quais funções chamar durante a análise ou registro em log de um rastreamento ETW (Rastreamento de Eventos para Windows).

Sintaxe

typedef struct ANALYSIS_CALLBACKS_TAG
{
    OnAnalysisEventFunc     OnStartActivity;
    OnAnalysisEventFunc     OnStopActivity;
    OnAnalysisEventFunc     OnSimpleEvent;
    OnTraceInfoFunc         OnTraceInfo;
    OnBeginEndPassFunc      OnBeginAnalysis;
    OnBeginEndPassFunc      OnEndAnalysis;
    OnBeginEndPassFunc      OnBeginAnalysisPass;
    OnBeginEndPassFunc      OnEndAnalysisPass;
} ANALYSIS_CALLBACKS;

Membros

Nome Descrição
OnStartActivity Chamada para processar um evento de início de atividade.
OnStopActivity Chamada para processar um evento de parada de atividade.
OnSimpleEvent Chamada para processar um evento simples.
OnTraceInfo Para sessões de análise, chamada no início de cada passagem de análise. Para as sessões de novo registro em log, chamada no início de cada passagem de análise e novamente no início da passagem de registro em log. Essa função só é chamada depois que OnBeginAnalysisPass for chamado.
OnBeginAnalysis Para sessões de análise, chamada antes do início de qualquer passagem de análise. Para as sessões de novo registro em log, chamada duas vezes antes do início da fase de análise: uma vez para anunciar o início da sessão de novo registro em log e mais uma vez para anunciar o início da fase de análise.
OnEndAnalysis Para sessões de análise, essa função é chamada depois que todas as passagens da análises são encerradas. Para as sessões de novo registro em log, esta função é chamada quando todas as passagens de análise da fase foram encerradas. Em seguida, ela é chamada novamente após o término da passagem de registro em log.
OnBeginAnalysisPass Chamada ao iniciar uma passagem de análise ou uma passagem de novo registro em log, antes de processar qualquer evento.
OnEndAnalysisPass Chamada ao encerrar uma passagem de análise ou a passagem de registro em log, depois de processar todos os eventos.

Comentários

A fase de análise de uma sessão de novo registro em log é considerada parte da sessão de novo registro em log e pode conter várias passagens de análise. Por esse motivo, OnBeginAnalysis é chamado duas vezes seguidas no início de uma sessão de novo registro em log. OnEndAnalysis é chamado no final da fase de análise, antes de iniciar a fase de novo registro em log e, mais uma vez, no final da fase de registro em log. A fase de novo registro em log sempre contém uma única passagem de registro em log.

É possível que os analisadores façam parte da análise e da fase de novo registro de uma sessão de novo registro em log. Esses analisadores podem determinar qual fase está em andamento, mantendo o controle dos pares de chamada OnBeginAnalysis e OnEndAnalysis. Duas chamadas OnBeginAnalysis sem nenhuma chamada OnEndAnalysis significam que a fase de análise está em andamento. Duas chamadas OnBeginAnalysis e uma chamada OnEndAnalysis significa que a fase de novo registro em log está em andamento. Duas chamadas OnBeginAnalysis e duas OnEndAnalysis significa que ambas as fases foram encerradas.

Todos os membros da estrutura ANALYSIS_CALLBACKS devem apontar para uma função válida. Para obter mais informações sobre as assinaturas de função aceitas, consulte OnAnalysisEventFunc, OnTraceInfoFunc e OnBeginEndPassFunc.