RegisterTraceGuidsA, fonction (evntrace.h)
La fonction RegisterTraceGuids inscrit un fournisseur de traces d’événements ETW classique (de style Windows 2000) et les classes de trace d’événements qu’elle utilise pour générer des événements. Cette fonction spécifie également la fonction de rappel que le système utilise 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] PTRACEHANDLE 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 le fournisseur que ETW transmet à 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 a lavaleur NULL, définissez ce paramètre sur 0.
[in, out] TraceGuidReg
Pointeur vers un tableau de
TRACE_GUID_REGISTRATION structures.
Chaque élément identifie une catégorie d’événements que le fournisseur fournit.
Lors de l’entrée, le membre GUID de chaque structure contient un GUID de classe de trace d’événements attribué 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 journaliser l’événement.
Lors de la sortie, le membre RegHandle reçoit un handle pour l’inscription du 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 de 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 lors de l’installation 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 lors de l’installation 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 désinscrit, un blocage se produit quand ETW tente d’appeler le rappel du fournisseur.
Valeur retournée
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. Dans ce cas, RegisterTraceGuids retourne la valeur de retour du rappel si l’inscription a réussi.
ERROR_INVALID_PARAMETER
Une des conditions suivantes est vraie :
- RequestAddress a la valeur NULL.
- ControlGuid a la valeur NULL.
- RegistrationHandle a la valeur NULL.
Windows XP et Windows 2000:TraceGuidReg a la valeur NULL ou GuidCount est inférieur ou égal à zéro.
Notes
Notes
La plupart des développeurs n’appellent pas cette fonction directement. Au lieu de cela, les développeurs utilisent généralement une infrastructure ETW. Par exemple, WPP basé sur TMF gère les appels à RegisterTraceGuids, TraceMessage et UnregisterTraceGuids en votre nom.
Cette fonction ouvre un handle de fournisseur d’événements Classic (de style Windows 2000) qui peut être utilisé pour écrire des événements WPP ETW basés sur MOF et TMF via TraceEvent, TraceEventInstance, TraceMessage et TraceMessageVa.
Notes
Pour ouvrir un handle de fournisseur de style Windows Vista qui écrit des événements ETW basés sur un manifeste ou sur 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 à un ou deux le nombre de fournisseurs inscrits par votre processus. Cette limite inclut les personnes 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.
Notes
L’en-tête evntrace.h définit RegisterTraceGuids en tant qu’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. La combinaison 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.
Spécifications
Client minimal pris en charge | Windows 2000 Professionnel [applications de bureau | Applications UWP] |
Serveur minimal pris en charge | Windows 2000 Server [applications de bureau | Applications UWP] |
Plateforme cible | Windows |
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
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour