Como habilitar o rastreamento WPP por meio do serviço de log de eventos do Windows
O serviço de Log de Eventos do Windows dá suporte ao log e à decodificação do WPP. Este tópico descreve como habilitar o rastreamento do WPP por meio do serviço de Log de Eventos do Windows.
Habilitar o rastreamento do WPP nesse cenário não requer nenhum trabalho extra para o provedor do WPP. No entanto, para usar o serviço de Log de Eventos do Windows, você deve fornecer um manifesto e um provedor de Log de Eventos. Para habilitar o rastreamento do WPP, declare um canal de depuração e especifique o GUID de controle associado conforme declarado para o provedor do WPP.
Por exemplo:
<instrumentationManifest
xmlns="http://schemas.microsoft.com/win/2004/08/events"
xmlns:win="http://manifests.microsoft.com/win/2004/08/windows/events"
xmlns:xsi="http://www.w3.org/2001/XMLSchema" xsi:schemaLocation="http://schemas.microsoft.com/win/2004/08/events eventman.xsd"
>
<instrumentation>
<events>
<provider name="Microsoft-Windows-mySampleProvider"
guid="{61CE3EC9-E5E8-4b96-A451-74631A6E0D5C}"
>
<channel
chid="MS_WINDOWS_GE_DEBUG"
enabled="false"
isolation="System"
message="$(string.Microsoft-Windows-GenerateEvent.channel.CHANNEL_DEBUG.message)"
name="Microsoft-Windows-GenerateEvent/Debug"
symbol="CHANNEL_DEBUG"
type="Debug"
>
<publishing>
<level>2</level>
<keywords>0xFFFFFFFF</keywords>
<controlGuid>{d58c126f-b309-11d1-969e-0000f875a5bc}</controlGuid>
</publishing>
</channel>
</provider>
</events>
</instrumentation>
</instrumentationManifest>
O rastreamento do WPP não deve ser habilitado o tempo todo, portanto, por padrão, o atributo enable no manifesto deve ser definido como false. Quando o rastreamento do WPP for necessário, altere o atributo no manifesto, para que enabled="true".
Não é possível especificar ou selecionar individualmente bits de controle. Para habilitar todos os eventos do WPP para esse canal, especifique um valor de palavra-chave de 0XFFFFFFFF. Internamente, os bits de controle são mapeados para palavras-chave; Se você souber qual bit é mapeado para uma palavra-chave específica, poderá selecionar essa palavra-chave para obter um conjunto específico de eventos. No manifesto de exemplo, o valor da palavra-chave é 0xFFFF porque são necessários menos de 16 bits de controle WPP. Para obter um conjunto específico de eventos após a instalação, você pode alterar as palavras-chave usando o utilitário de linha de comando wevtutil.exe. O comando é:
Nome> do canal Wevtutil SL</k:<Valor da palavra-chave correspondente ao bit de controle>
Observe que o canal deve primeiro ser desabilitado para alterar o valor da palavra-chave.
Declarar um canal dessa maneira permite que o provedor WPP (cujo GUID de controle é especificado) e o provedor de Log de Eventos (no qual esse canal é declarado) acessem o canal de depuração, para que qualquer provedor possa gravar nesse canal. Eventos WPP ou eventos ETW normais agora podem ser vistos nesse canal por meio do visualizador de eventos.
Os eventos WPP não são decodificados. Para obter cadeias de caracteres de mensagem associadas a esses eventos, coloque os arquivos TMF no diretório %windir%\System32\winevt\TraceFormat. Você pode obter os arquivos TMF usando um utilitário como o Tracepdb.exe, que usa o arquivo PDB para entrada e retorna arquivos TMF.