Escribir eventos relacionados en un proveedor clásico

Los proveedores clásicos usan la función TraceEventInstance para realizar un seguimiento de eventos que forman parte de una sola transacción. También puede usar esta función para realizar un seguimiento de eventos primarios o secundarios.

Antes de llamar a la función TraceEventInstance , primero debe llamar a la función CreateTraceInstanceId para obtener un identificador de transacción. Esta función genera un identificador de transacción único y lo asigna a un identificador GUID de clase registrado. Los identificadores de los GUID de clase registrados están disponibles en los miembros RegHandle de estructuras de TRACE_GUID_REGISTRATION , después de llamar a la función RegisterTraceGuids . El identificador de transacción se coloca en el miembro InstanceId de una estructura de EVENT_INSTANCE_INFO que se pasa a la función CreateTraceInstanceId .

La estructura de EVENT_INSTANCE_HEADER que se pasa a la función TraceEventInstance es similar a la estructura de EVENT_TRACE_HEADER (vea Eventos de seguimiento), excepto que contiene información adicional relacionada con las instancias y no contiene un miembro Guid .

Las instancias de eventos se pueden usar para establecer una relación jerárquica entre eventos. La función TraceEventInstance acepta información específica de la instancia de dos instancias de evento. El parámetro pInstInfo apunta a la estructura EVENT_INSTANCE_INFO de la instancia de evento y el parámetro pParentInstInfo apunta a la estructura EVENT_INSTANCE_INFO de una instancia de evento primaria. La definición de una instancia de evento "primaria" está definida por la aplicación; el elemento primario puede ser cualquier instancia que ya se haya generado.