Partager via


macro TRACELOGGING_DEFINE_PROVIDER_STORAGE (traceloggingprovider.h)

Réserve le stockage statique pour un handle de fournisseur TraceLogging qui sera défini par l’utilisateur. Préférez TRACELOGGING_DEFINE_PROVIDER à cette macro.

Syntaxe

void TRACELOGGING_DEFINE_PROVIDER_STORAGE(
  [in]            storageVariable,
  [in]            providerName,
  [in]            providerId,
  [in, optional]  __VA_ARGS__
);

Paramètres

[in] storageVariable

Nom à utiliser pour la variable de stockage du fournisseur statique, par exemple MyStaticProviderStorage.

[in] providerName

Littéral de chaîne portant le nom du fournisseur TraceLogging. Ce nom doit être spécifique à votre organization et à votre composant afin qu’il ne soit pas en conflit avec les fournisseurs d’autres composants. Cette chaîne de nom étant incluse dans chaque événement ETW généré par le fournisseur, essayez d’utiliser un nom relativement court. Par exemple, vous pouvez utiliser un nom comme "MyCompany.MyComponent" ou "MyCompany.MyOrganization.MyComponent".

Il doit s’agir d’un littéral de chaîne. N’utilisez pas de variable.

[in] providerId

GUID de contrôle ETW pour le fournisseur, spécifié sous la forme d’une liste séparée par des virgules de 11 entiers entre parenthèses. Par exemple, le GUID {ce5fa4ea-ab00-5402-8b76-9f76ac858fb5} est exprimé en tant que (0xce5fa4ea,0xab00,0x5402,0x8b,0x76,0x9f,0x76,0xac,0x85,0x8f,0xb5).

Bien que n’importe quel GUID unique puisse être utilisé pour l’ID de fournisseur, Microsoft recommande d’utiliser un GUID généré à partir du nom du fournisseur à l’aide de l’algorithme de hachage de nom ETW. Consultez TRACELOGGING_DEFINE_PROVIDER pour plus d’informations sur la génération de l’ID de fournisseur.

[in, optional] __VA_ARGS__

Paramètres facultatifs pour le fournisseur. La plupart des fournisseurs n’ont pas besoin de spécifier de paramètres facultatifs.

Si vous souhaitez que votre fournisseur soit associé à un groupe de fournisseurs ETW, ajoutez la macro TraceLoggingOptionGroup pour spécifier le GUID de groupe du fournisseur. Sinon, ne spécifiez aucun __VA_ARGS__ paramètre.

Valeur de retour

None

Remarques

Dans la plupart des cas, vous utiliserez TRACELOGGING_DEFINE_PROVIDER à la place de cette macro. Dans certains scénarios inhabituels, vous devrez peut-être utiliser cette macro pour allouer du stockage statique pour un fournisseur TraceLogging sans déclarer également la variable handle. Votre code déclarera par la suite la variable handle comme il convient.

TRACELOGGING_DEFINE_PROVIDER_STORAGE déclare une variable statique avec les données nécessaires pour un fournisseur. Vous pouvez ensuite créer un handle en prenant l’adresse de cette variable. Un appel de TRACELOGGING_DEFINE_PROVIDER_STORAGE(storageVar, ...) peut être considéré comme similaire au code comme :

static TraceLoggingProviderState storageVar = { ... };

Exemple d’utilisation :

TRACELOGGING_DEFINE_PROVIDER_STORAGE( // defines static storageVar
    storageVar, // Name of the storage variable
    "MyCompany.MyComponent", // Human-readable name for the provider
    // {ce5fa4ea-ab00-5402-8b76-9f76ac858fb5}
    (0xce5fa4ea,0xab00,0x5402,0x8b,0x76,0x9f,0x76,0xac,0x85,0x8f,0xb5));

const TraceLoggingHProvider g_hMyProvider = &storageVar; // Make a handle

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista [applications de bureau | applications UWP]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau | applications UWP]
Plateforme cible Windows
En-tête traceloggingprovider.h

Voir aussi

TRACELOGGING_DECLARE_PROVIDER

TRACELOGGING_DEFINE_PROVIDER

TraceLoggingWrite