Écriture d’événements connexes dans un fournisseur Classic

Les fournisseurs classiques utilisent la fonction TraceEventInstance pour suivre les événements qui font partie d’une transaction unique. Vous pouvez également utiliser cette fonction pour tracer les événements parent/enfant.

Avant d’appeler la fonction TraceEventInstance , vous devez d’abord appeler la fonction CreateTraceInstanceId pour obtenir un identificateur de transaction. Cette fonction génère un identificateur de transaction unique et le mappe à un handle de GUID de classe inscrit. Les descripteurs des GUID de classe inscrits sont disponibles dans les membres RegHandle des structures d' inscription de _ GUID _ de trace , après l’appel de la fonction RegisterTraceGuids . L’identificateur de transaction est placé dans le membre InstanceID d’une structure d' _ _ informations d’instance d’événement que vous transmettez à la fonction CreateTraceInstanceId .

La structure d' _ _ en-tête de l’instance d’événement qui est passée à la fonction TraceEventInstance est similaire à la structure d' _ _ en-tête de suivi d’événements (consultez suivi des événements), à la différence qu’elle contient des informations supplémentaires relatives aux instances et ne contient pas de membre GUID .

Les instances d’événements peuvent être utilisées pour établir une relation hiérarchique entre les événements. La fonction TraceEventInstance accepte les informations spécifiques à l’instance de deux instances d’événement. Le paramètre pInstInfo pointe vers la structure d' _ _ informations de l’instance d’événement de l’instance de l’événement, et le paramètre pParentInstInfo pointe vers la structure d’informations de l' _ instance _ d’événement d’une instance d’événement parent. La définition d’une instance d’événement « parent » est définie par l’application ; le parent peut être n’importe quelle instance déjà générée.