Compartilhar via


Como adiciono um prefixo e um sufixo a uma mensagem de rastreamento?

Você pode usar um bloco de configuração do pré-processador WPP para adicionar dados às mensagens de rastreamento.

O bloco de configuração do WPP é definido pelas instruções begin_wpp config e end_wpp que você coloca no código-fonte.

begin_wpp configuração

...

bloco de configuração

...

end_wpp

Se você colocar dados de configuração em um arquivo de cabeçalho, especifique o nome do arquivo de cabeçalho nas propriedades do projeto (para rastreamento WPP). Em Opções de Arquivo na página de propriedades, especifique o arquivo de Configuração de Digitalização. Consulte Pré-processador WPP para obter mais informações.

Sintaxe do bloco de configuração

USEPREFIX (Function_Name, "Cadeia de caracteres de formato");
Define um prefixo de cadeia de caracteres de formato a ser usado quando o evento é registrado. O primeiro parâmetro é o nome da função à qual esse prefixo se aplica. O segundo parâmetro é a cadeia de caracteres de formato a ser usada. Para usar o valor padrão, especifique %! STDPREFIX!. O prefixo de mensagem de rastreamento padrão especifica o número da CPU, a ID do processo, a ID do thread, o carimbo de data/hora no formato UTC (Tempo Universal Coordenado) e o nome amigável do GUID do controle.

//USEPREFIX (TRACE_RETURN, "%!STDPREFIX!");

FUNC Function_Name{args}(EXP);
Define o nome e a assinatura da função de rastreamento. As chaves { } são usadas para definir valores definidos para a função. No exemplo a seguir, a função usa um argumento e nenhuma cadeia de caracteres de formato, e o LEVEL é definido como ERROR.

//FUNC TRACE_RETURN{LEVEL=ERROR}(EXP);

USESUFFIX (Function_Name, "Format string");
Define o sufixo da cadeia de caracteres de formato a ser usado quando o evento é registrado. O primeiro parâmetro é o nome da função à qual esse sufixo se aplica. O segundo parâmetro é a cadeia de caracteres de formato a ser usada. Você pode usar nomes de variáveis em seu código.

//USESUFFIX (TRACE_RETURN, "Function Return=%!HRESULT!",EXP);

Exemplo de bloco de configuração

O exemplo a seguir define uma macro de rastreamento que usa o prefixo e o sufixo da cadeia de caracteres de formato. Se você estiver definindo uma macro de rastreamento, também deverá definir macros para selecionar o agente e verificar se o evento deve ser registrado.

//MACRO: TRACE_RETURN
//
//begin_wpp config
//USEPREFIX (TRACE_RETURN, "%!STDPREFIX!");
//FUNC TRACE_RETURN{LEVEL=ERROR}(EXP);
//USESUFFIX (TRACE_RETURN, "Function Return=%!HRESULT!",EXP);
//end_wpp

//
// The next two macros are for checking if the event should be logged, and for
// choosing the logger handle to use when calling the ETW trace API
//
#define WPP_LEVEL_EXP_ENABLED(LEVEL, HR) WPP_FLAG_ENABLED(LEVEL)
#define WPP_LEVEL_EXP_LOGGER(LEVEL, HR) WPP_FLAG_LOGGER(LEVEL)

Exemplos de resultados de rastreamento

[0]0F78.0460::06/24/2006-15:54:54.880 [tracedrv]Function Return=0x8000000f(STATUS_DEVICE_POWERED_OFF)