Compartir a través de


TRACELOGGING_DEFINE_PROVIDER_STORAGE macro (traceloggingprovider.h)

Reserva el almacenamiento estático para un identificador de proveedor de seguimiento definido por el usuario. Prefiere TRACELOGGING_DEFINE_PROVIDER sobre esta macro.

Sintaxis

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

Parámetros

[in] storageVariable

Nombre que se va a usar para la variable de almacenamiento del proveedor estático, por ejemplo, MyStaticProviderStorage.

[in] providerName

Literal de cadena con el nombre del proveedor TraceLogging. Este nombre debe ser específico de su organización y componente para que no entre en conflicto con proveedores de otros componentes. Esta cadena de nombre se incluirá dentro de cada evento ETW generado por el proveedor, por lo que intente usar un nombre relativamente corto. Por ejemplo, puede usar un nombre como "MyCompany.MyComponent" o "MyCompany.MyOrganization.MyComponent".

Debe ser un literal de cadena. No use una variable.

[in] providerId

Guid de control ETW para el proveedor, especificado como una lista separada por comas de 11 enteros entre paréntesis. Por ejemplo, el GUID {ce5fa4ea-ab00-5402-8b76-9f76ac858fb5} se expresaría como (0xce5fa4ea,0xab00,0x5402,0x8b,0x76,0x9f,0x76,0xac,0x85,0x8f,0xb5).

Aunque se puede usar cualquier GUID único para el identificador de proveedor, Microsoft recomienda usar un GUID generado a partir del nombre del proveedor mediante el algoritmo de hash de nombres ETW. Consulte TRACELOGGING_DEFINE_PROVIDER para obtener información sobre cómo generar el identificador de proveedor.

[in, optional] __VA_ARGS__

Parámetros opcionales para el proveedor. La mayoría de los proveedores no necesitan especificar ningún parámetro opcional.

Si desea que el proveedor esté asociado a un grupo de proveedores ETW, agregue la macro TraceLoggingOptionGroup para especificar el GUID del grupo del proveedor. De lo contrario, no especifique ningún __VA_ARGS__ parámetro.

Valor devuelto

None

Observaciones

En la mayoría de los casos, usará TRACELOGGING_DEFINE_PROVIDER en lugar de esta macro. En determinados escenarios inusuales, es posible que tenga que usar esta macro para asignar almacenamiento estático para un proveedor traceLogging sin declarar también la variable de identificador. El código declarará posteriormente la variable handle según corresponda.

TRACELOGGING_DEFINE_PROVIDER_STORAGE declarará una variable estática con los datos necesarios para un proveedor. Después, puede crear un identificador tomando la dirección de esta variable. Una invocación de TRACELOGGING_DEFINE_PROVIDER_STORAGE(storageVar, ...) se puede considerar como similar al código como:

static TraceLoggingProviderState storageVar = { ... };

Ejemplo de uso:

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

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista [aplicaciones de escritorio | aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2008 [aplicaciones de escritorio | aplicaciones para UWP]
Plataforma de destino Windows
Encabezado traceloggingprovider.h

Consulte también

TRACELOGGING_DECLARE_PROVIDER

TRACELOGGING_DEFINE_PROVIDER

TraceLoggingWrite