Scrittura di eventi correlati in un provider classico
provider di classici usano la funzioneTraceEventInstanceper tracciare gli eventi che fanno parte di una singola transazione. È anche possibile usare questa funzione per tracciare gli eventi padre/figlio.
Prima di chiamare la funzioneTraceEventInstance, è necessario chiamare la funzionecreateTraceInstanceIdper ottenere un identificatore di transazione. Questa funzione genera un identificatore di transazione univoco ed esegue il mapping a un handle GUID della classe registrato. Gli handle dei GUID di classe registrati sono disponibili nei membri RegHandle delle strutture TRACE_GUID_REGISTRATION, dopo aver chiamato la funzione RegisterTraceGuids. L'identificatore della transazione è posizionato nel membro InstanceId di una struttura EVENT_INSTANCE_INFO che si passa alla funzione CreateTraceInstanceId.
La struttura EVENT_INSTANCE_HEADER passata alla funzioneTraceEventInstanceè simile alla struttura EVENT_TRACE_HEADER (vedere Tracing Events), ad eccezione del fatto che contiene informazioni aggiuntive relative alle istanze e non contiene un membro Guid.
Le istanze di evento possono essere usate per stabilire una relazione gerarchica tra gli eventi. La funzioneTraceEventInstanceaccetta informazioni specifiche dell'istanza da due istanze di eventi. Il parametro pInstInfo punta alla struttura EVENT_INSTANCE_INFO dell'istanza dell'evento e il parametro pParentInstInfo punta alla struttura EVENT_INSTANCE_INFO di un'istanza dell'evento padre. La definizione di un'istanza di evento "padre" è definita dall'applicazione; l'elemento padre può essere qualsiasi istanza già generata.