Compartilhar via


Escrevendo eventos relacionados em um provedor clássico

Os provedores clássicos usam a função TraceEventInstance para rastrear eventos que fazem parte de uma única transação. Você também pode usar essa função para rastrear eventos pai/filho.

Antes de chamar a função TraceEventInstance , você deve primeiro chamar a função CreateTraceInstanceId para obter um identificador de transação. Essa função gera um identificador de transação exclusivo e mapeia-o para um identificador GUID de classe registrado. Os identificadores para GUIDs de classe registrados estão disponíveis nos membros RegHandle de estruturas de TRACE_GUID_REGISTRATION , depois de chamar a função RegisterTraceGuids . O identificador de transação é colocado no membro InstanceId de uma estrutura EVENT_INSTANCE_INFO que você passa para a função CreateTraceInstanceId .

A estrutura EVENT_INSTANCE_HEADER que é passada para a função TraceEventInstance é semelhante à estrutura EVENT_TRACE_HEADER (consulte Eventos de Rastreamento), exceto que ela contém informações adicionais relacionadas a instâncias e não contém um membro Guid .

As instâncias de evento podem ser usadas para estabelecer uma relação hierárquica entre eventos. A função TraceEventInstance aceita informações específicas da instância de duas instâncias de evento. O parâmetro pInstInfo aponta para a estrutura EVENT_INSTANCE_INFO da instância de evento e o parâmetro pParentInstInfo aponta para a estrutura EVENT_INSTANCE_INFO de uma instância de evento pai. A definição de uma instância de evento "pai" é definida pelo aplicativo; o pai pode ser qualquer instância que já tenha sido gerada.