Partager via


RegisterTraceGuidsA, fonction (evntrace.h)

La fonction RegisterTraceGuids inscrit un fournisseur de trace d’événements ETW classique (style Windows 2000) et les classes de trace d’événements qu’il utilise pour générer des événements. Cette fonction spécifie également la fonction de rappel utilisée par le système pour activer et désactiver le suivi à partir du fournisseur.

Cette fonction est obsolète. Le nouveau code doit utiliser EventRegister pour inscrire un fournisseur de trace d’événements ETW de style Windows Vista (Crimson).

Syntaxe

ULONG WMIAPI RegisterTraceGuidsA(
  [in]      WMIDPREQUEST             RequestAddress,
  [in]      PVOID                    RequestContext,
  [in]      LPCGUID                  ControlGuid,
  [in]      ULONG                    GuidCount,
  [in, out] PTRACE_GUID_REGISTRATION TraceGuidReg,
  [in]      LPCSTR                   MofImagePath,
  [in]      LPCSTR                   MofResourceName,
  [out]     TRACEGUID_HANDLE         *RegistrationHandle
);

Paramètres

[in] RequestAddress

Pointeur vers une fonction ControlCallback qui reçoit une notification lorsque le fournisseur est activé ou désactivé par une session de suivi d’événements. La fonction EnableTrace déclenche ce rappel.

[in] RequestContext

Pointeur vers un contexte facultatif défini par un fournisseur transmis à la fonction spécifiée par RequestAddress.

[in] ControlGuid

GUID de contrôle (ID de fournisseur) du fournisseur d’inscription.

[in] GuidCount

Nombre d’éléments dans le tableau TraceGuidReg. Si TraceGuidReg est NULL, définissez ce paramètre sur 0.

[in, out] TraceGuidReg

Pointeur vers un tableau de
structures TRACE_GUID_REGISTRATION.

Chaque élément identifie une catégorie d’événements que le fournisseur fournit.

Lors de l’entrée, le guid membre de chaque structure contient un GUID de classe de trace d’événements affecté par le fournisseur d’inscription. Le GUID de classe identifie une catégorie d’événements que le fournisseur fournit. Les fournisseurs utilisent le même GUID de classe pour définir le membre Guid de EVENT_TRACE_HEADER lors de l’appel de la fonction TraceEvent pour consigner l’événement.

En sortie, le membre RegHandle reçoit un handle à l’inscription GUID de classe de l’événement. Si le fournisseur appelle la fonction TraceEventInstance , utilisez le membre RegHandle de TRACE_GUID_REGISTRATION pour définir le membre RegHandle EVENT_INSTANCE_HEADER.

Ce paramètre peut être null si le fournisseur appelle uniquement la fonction TraceEvent pour journaliser les événements. Si le fournisseur appelle la fonction TraceEventInstance pour journaliser les événements, ce paramètre ne peut pas être NULL.

[in] MofImagePath

Ce paramètre n’est pas pris en charge. Défini sur NULL . Vous devez utiliser Mofcomp.exe pour inscrire la ressource MOF pendant la configuration de votre application. Pour plus d’informations, consultez publication de votre schéma d’événement.

Windows XP avec SP1, Windows XP et Windows 2000 : pointeur vers une chaîne facultative qui spécifie le chemin d’accès de la DLL ou du programme exécutable qui contient la ressource spécifiée par MofResourceName. Ce paramètre peut être null si le fournisseur d’événements et le consommateur utilisent un autre mécanisme pour partager des informations sur les classes de trace d’événements utilisées par le fournisseur.

[in] MofResourceName

Ce paramètre n’est pas pris en charge. Défini sur NULL . Vous devez utiliser Mofcomp.exe pour inscrire la ressource MOF pendant la configuration de votre application. Pour plus d’informations, consultez publication de votre schéma d’événement.

Windows XP avec SP1, Windows XP et Windows 2000 : pointeur vers une chaîne facultative qui spécifie la ressource de chaîne de MofImagePath. La ressource de chaîne contient le nom du fichier MOF binaire qui décrit les classes de trace d’événements prises en charge par le fournisseur.

[out] RegistrationHandle

Reçoit le handle d’inscription du fournisseur. Utilisez le handle retourné lorsque vous appelez la fonction UnregisterTraceGuids.

Important

Tous les handles d’inscription créés par une DLL ou un pilote doivent être désinscrits avant le déchargement de la DLL ou du pilote. Si le fournisseur n’est pas inscrit, un incident se produit lorsque ETW tente d’appeler le rappel du fournisseur.

Valeur de retour

Si la fonction réussit, la valeur de retour est ERROR_SUCCESS.

Si la fonction échoue, la valeur de retour est l’un des codes d’erreur système . Voici quelques erreurs courantes et leurs causes.

Important

 Cette fonction peut également retourner la valeur retournée par ControlCallback si un contrôleur appelle EnableTrace pour activer le fournisseur et que le fournisseur n’a pas encore appelé RegisterTraceGuids. Lorsque cela se produit, RegisterTraceGuids retourne la valeur de retour du rappel si l’inscription a réussi.

  • ERROR_INVALID_PARAMETER

    L’une des valeurs suivantes est vraie :

    • RequestAddress est NULL.
    • ControlGuid est NULL.
    • RegistrationHandle est NULL.

    Windows XP et Windows 2000 :TraceGuidReg est NULL ou GuidCount est inférieur ou égal à zéro.

Remarques

Note

La plupart des développeurs n’appelleront pas cette fonction directement. Au lieu de cela, les développeurs utiliseront généralement une infrastructure ETW. Par exemple, WPP basé sur TMF gère les appels à RegisterTraceGuids, TraceMessageet UnregisterTraceGuids en votre nom.

Cette fonction ouvre un handle de fournisseur d’événements classique (windows 2000-style) qui peut être utilisé pour écrire des événements WPP ETW basés sur MOF et TMF via TraceEvent, TraceEventInstance, TraceMessageet TraceMessageVa.

Note

Pour ouvrir un de fournisseur de de style Windows Vista qui écrit des événements ETW basés sur un manifeste ou TraceLogging via EventWrite, utilisez EventRegister.

Si le ControlGuid du fournisseur a été précédemment inscrit et activé, les inscriptions suivantes qui font référence au même ControlGuid sont automatiquement activées.

Un processus peut inscrire jusqu’à 1 024 GUID de fournisseur ; Toutefois, vous devez limiter le nombre de fournisseurs que votre processus s’inscrit à un ou deux. Cette limite inclut celles inscrites à l’aide de cette fonction et de la fonction EventRegister.

Avant Windows Vista : Il n’existe aucune limite au nombre de fournisseurs qu’un processus peut inscrire.

Exemples

Pour obtenir un exemple qui utilise RegisterTraceGuids, consultez Écriture d’événements classiques.

Note

L’en-tête evntrace.h définit RegisterTraceGuids comme alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. Le mélange de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.

Exigences

Exigence Valeur
client minimum pris en charge Windows 2000 Professionnel [applications de bureau | Applications UWP]
serveur minimum pris en charge Windows 2000 Server [applications de bureau | Applications UWP]
plateforme cible Windows
d’en-tête evntrace.h
bibliothèque Sechost.lib sur Windows 8.1 et Windows Server 2012 R2 ; Advapi32.lib sur Windows 8, Windows Server 2012, Windows 7, Windows Server 2008 R2, Windows Server 2008, Windows Vista et Windows XP
DLL Sechost.dll sur Windows 8.1 et Windows Server 2012 R2 ; Advapi32.dll sur Windows 8, Windows Server 2012, Windows 7, Windows Server 2008 R2, Windows Server 2008, Windows Vista et Windows XP

Voir aussi

EnableTrace

DésinscrireTraceGuids