macro TRACELOGGING_DEFINE_PROVIDER_STORAGE (traceloggingprovider.h)

Reserva o armazenamento estático para um identificador de provedor tracelogging que será definido pelo usuário. Prefira TRACELOGGING_DEFINE_PROVIDER sobre essa macro.

Sintaxe

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

Parâmetros

[in] storageVariable

O nome a ser usado para a variável de armazenamento do provedor estático, por exemplo, MyStaticProviderStorage.

[in] providerName

Um literal de cadeia de caracteres com o nome do provedor TraceLogging. Esse nome deve ser específico para sua organização e componente para que ele não entre em conflito com provedores de outros componentes. Essa cadeia de caracteres de nome será incluída em cada evento ETW gerado pelo provedor, portanto, tente usar um nome relativamente curto. Por exemplo, você pode usar um nome como "MyCompany.MyComponent" ou "MyCompany.MyOrganization.MyComponent".

Deve ser um literal de cadeia de caracteres. Não use uma variável.

[in] providerId

O GUID de controle ETW para o provedor, especificado como uma lista separada por vírgulas de 11 inteiros entre parênteses. Por exemplo, o GUID {ce5fa4ea-ab00-5402-8b76-9f76ac858fb5} seria expresso como (0xce5fa4ea,0xab00,0x5402,0x8b,0x76,0x9f,0x76,0xac,0x85,0x8f,0xb5).

Embora qualquer GUID exclusivo possa ser usado para a ID do provedor, a Microsoft recomenda usar um GUID gerado a partir do nome do provedor usando o algoritmo de hash de nome ETW. Consulte TRACELOGGING_DEFINE_PROVIDER para obter informações sobre como gerar a ID do provedor.

[in, optional] __VA_ARGS__

Parâmetros opcionais para o provedor. A maioria dos provedores não precisa especificar parâmetros opcionais.

Se você quiser que seu provedor seja associado a um grupo de provedores ETW, adicione a macro TraceLoggingOptionGroup para especificar o GUID de grupo do provedor. Caso contrário, não especifique nenhum __VA_ARGS__ parâmetro.

Retornar valor

Nenhum

Comentários

Na maioria dos casos, você usará TRACELOGGING_DEFINE_PROVIDER em vez dessa macro. Em determinados cenários incomuns, talvez seja necessário usar essa macro para alocar o armazenamento estático para um provedor traceLogging sem declarar também a variável de identificador. Posteriormente, o código declarará a variável de identificador conforme apropriado.

TRACELOGGING_DEFINE_PROVIDER_STORAGE declarará uma variável estática com os dados necessários para um provedor. Em seguida, você pode criar um identificador tomando o endereço dessa variável. Uma invocação de TRACELOGGING_DEFINE_PROVIDER_STORAGE(storageVar, ...) pode ser considerada semelhante ao código, como:

static TraceLoggingProviderState storageVar = { ... };

Exemplo 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 Valor
Cliente mínimo com suporte Windows Vista [aplicativos da área de trabalho | Aplicativos UWP]
Servidor mínimo com suporte Windows Server 2008 [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho traceloggingprovider.h

Confira também

TRACELOGGING_DECLARE_PROVIDER

TRACELOGGING_DEFINE_PROVIDER

TraceLoggingWrite