Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Classic providers use the TraceEventInstance function to trace events that are part of a single transaction. You can also use this function to trace parent/child events.
Before calling the TraceEventInstance function, you must first call the CreateTraceInstanceId function to obtain a transaction identifier. This function generates a unique transaction identifier, and maps it to a registered class GUID handle. The handles for registered class GUIDs are available in the RegHandle members of TRACE_GUID_REGISTRATION structures, after calling the RegisterTraceGuids function. The transaction identifier is placed in the InstanceId member of an EVENT_INSTANCE_INFO structure that you pass to the CreateTraceInstanceId function.
The EVENT_INSTANCE_HEADER structure that is passed to the TraceEventInstance function is similar to the EVENT_TRACE_HEADER structure (see Tracing Events), except that it contains additional information relating to instances, and does not contain a Guid member.
Event instances can be used to establish a hierarchical relationship between events. The TraceEventInstance function accepts instance-specific information from two event instances. The pInstInfo parameter points to the EVENT_INSTANCE_INFO structure of the event instance, and the pParentInstInfo parameter points to the EVENT_INSTANCE_INFO structure of a parent event instance. The definition of a "parent" event instance is application-defined; the parent can be any instance that has already been generated.