Compartilhar via


PEVENT_CALLBACK função de retorno de chamada (evntrace.h)

Os consumidores de eventos ETW implementam esse retorno de chamada para receber eventos de uma sessão de processamento de rastreamento. Esse retorno de chamada não deve ser usado em um novo código. Em vez disso, implemente EventRecordCallback.

O tipo PEVENT_CALLBACK é um ponteiro para essa função de retorno de chamada. EventCallback é um espaço reservado para o nome da função definida pelo aplicativo.

Sintaxe

PEVENT_CALLBACK PeventCallback;

void PeventCallback(
  [in] PEVENT_TRACE pEvent
)
{...}

Parâmetros

[in] pEvent

Ponteiro para uma estrutura EVENT_TRACE que contém as informações do evento.

Retornar valor

Nenhum

Comentários

Observação

Esse retorno de chamada é obsoleto porque recebe informações incompletas sobre o evento e não é compatível com APIs auxiliares de decodificação de eventos, como TdhGetEventInformation. Em vez de implementar EventCallback, implemente EventRecordCallback.

Para especificar a função que o ETW chama para entregar os eventos, defina o membro EventCallback da estrutura EVENT_TRACE_LOGFILE que você passa para a função OpenTrace .

Observação

Se a função EventCallback estiver recebendo dados embaralhados do ProcessTrace, marcar os sinalizadores especificados no ProcessTraceMode campo da EVENT_TRACE_LOGFILE estrutura que foi fornecida ao OpenTrace. EVENT_TRACE_LOGFILEOs campos EventCallback e EventRecordCallback são membros sobrepostos de uma união. Se o ProcessTraceMode campo incluir o PROCESS_TRACE_MODE_EVENT_RECORD sinalizador, ProcessTrace invocará seu retorno de chamada usando a assinatura da função EventRecordCallback . Caso contrário, o ProcessTrace invocará o retorno de chamada usando a assinatura da função EventCallback .

Depois de usar o OpenTrace para criar a sessão de processamento de rastreamento, chame a função ProcessTrace para começar a receber os eventos.

Quando o ProcessTrace começa a processar eventos de um rastreamento, ele pode invocar o retorno de chamada com um ou mais eventos sintéticos que contêm dados sobre o rastreamento (metadados) em vez de dados de eventos registrados. Esses eventos sintéticos têm Header.Guid definido como EventTraceGuid e Header.Class.Type definidos com base no conteúdo do evento sintético. Por exemplo, o primeiro evento de cada arquivo de rastreamento será um evento sintético com o tipo 0 contendo informações de TRACE_LOGFILE_HEADER .

Todos os outros eventos recebidos contêm dados de evento específicos do provedor. Você usa os membros Header.Guid e Header.Class.Type de EVENT_TRACE para determinar o tipo de evento recebido. É possível codificar a lógica de decodificação de código para tipos de eventos conhecidos, mas a maioria dos eventos será decodificada usando informações de esquema MOF registradas no sistema no \\root\wmi namespace. Para obter informações sobre como usar o esquema MOF de um evento para interpretar o evento, consulte Consumindo eventos.

Exemplos

Para obter um exemplo de implementação de uma função EventCallback , consulte Recuperando dados de evento usando MOF.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho evntrace.h

Confira também

Consumindo eventos

BufferCallback

EventRecordCallback

EVENT_TRACE_LOGFILE

OpenTrace

ProcessTrace