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 |