Exemplo 9: Criando um arquivo TMF

O comando a seguir direciona Tracefmt para formatar e exibir as mensagens de rastreamento em Tracedrv.etl, um log de rastreamento gerado pelo Tracedrv. TraceDrv, um driver de exemplo que foi projetado para rastreamento de software, está disponível no repositório de exemplos de driver do Windows no GitHub.

O comando inclui o parâmetro -i , que direciona Tracefmt para criar um arquivo TMF para Tracedrv.

tracefmt d:\tracedrv\tracedrv.etl -i d:\tracedrv\tracedrv.sys -r d:\tracedrv 
-p d:\tracedrv\tmfs -o d:\tracedrv\tracedrv1.txt -v

O comando usa o parâmetro -i para indicar o caminho totalmente qualificado para o arquivo de imagem para Tracedrv, Tracedrv.sys, no WDK.

-i d:\tracedrv\tracedrv.sys

Ele usa o parâmetro -r para indicar o caminho totalmente qualificado para a versão completa do arquivo de símbolo PDB para Tracedrv, Tracedrv.pdb. Observe que você especifica um caminho com esse parâmetro, mas não um nome de arquivo. Tracefmt localiza a versão correta do arquivo de símbolo com base no arquivo de imagem especificado por -i.

-r d:\tracedrv

O comando usa o parâmetro -p para direcionar Tracefmt para colocar o arquivo TMF que ele cria para Tracedrv no diretório d:\tracedrv\tmfs .

-p d:\tracedrv\tmfs

O comando usa o parâmetro -o para direcionar Tracefmt para colocar o arquivo de saída de mensagens de rastreamento formatadas no arquivo d:\tracedrv\tracedrv1.txt . Esse parâmetro também coloca o arquivo de resumo no mesmo diretório com o nome do arquivo Tracedrv.txt.sum.

-o d:\tracedrv\tracedrv1.txt

O parâmetro -v solicita mensagens detalhadas (detalhadas).

Em resposta a esse comando, o Tracefmt procura e localiza o arquivo PDB para Tracedrv.sys no diretório d:\tracedrv. Ele extrai as instruções de formatação da mensagem de rastreamento do arquivo PDB e as armazena em um arquivo TMF, conforme mostrado na instrução em negrito na saída a seguir. O nome do arquivo TMF é o GUID da mensagem do provedor de rastreamento no Tracedrv. O Tracefmt também cria um arquivo TMC (controle de mensagem de rastreamento) e o coloca no mesmo diretório.

Depois que o Tracefmt cria o arquivo TMF, ele lê o arquivo para localizar as instruções de formatação para as mensagens de rastreamento no log de rastreamento Tracedrv.etl. Ele começa examinando o arquivo Default.tmf e localiza o arquivo TMf que ele criou no diretório d:\tracedrv\tmfs.

Antes de formatar os dados, o Tracefmt exibe dados sobre o log de rastreamento. Os dados começam com a instrução Logfile d:\tracedrv\tracedrv.etl .

As instruções finais na saída mostram que o Tracefmt formatou com êxito os 13 eventos no log de rastreamento e criou os arquivos Tracedrv1.txt e Tracedrv1.txt.sum.

Setting log file to: d:\tracedrv\tracedrv.etl

Searching for matching PDB to d:\tracedrv\tracedrv.sys
Current Symbol Search Path = d:\tracedrv

Extracting TMF files out of found PDB files
DBGHELP: d:\tracedrv\tracedrv.pdb - OK
tracefmt : info BNP0000: WPPFMT generating d:\tracedrv\tmfs\1606d1a7-1682-57d1-65f7-36693800e096.tmf for d:\tracedrv\tracedrv.pdb
tracefmt : info BNP0000: WPPFMT generating d:\tracedrv\tmfs\d58c126f-b309-11d1-969e-0000f875a5bc.tmc for d:\tracedrv\tracedrv.pdb
Examining C:\WinDDK\5066\tools\tracing\i386\default.tmf for message formats,  3 found.
Searching for TMF files on path: d:\tracedrv\tmfs
Logfile d:\tracedrv\tracedrv.etl:
        OS version              5.1.2600  (Currently running on 5.1.2600)
        Start Time              2005-06-10-14:25:30.827
        End Time                2005-06-10-14:26:14.371
        Timezone is             Pacific Standard Time (Bias is 480mins)
        BufferSize              8192 B
        Maximum File Size       0 MB
        Buffers  Written        2
        Logger Mode Settings    (0) Logfile Mode is not set
        ProcessorCount          1
06/10/2005-21:25:45.539 ::        1: Filled=     696, Lost=  0 TotalLost= 0

Processing completed   Buffers: 1, Events: 13, EventsLost: 0 :: Format Errors: 0, Unknowns: 0

Event traces dumped to d:\tracedrv\tracedrv1.txt
Event Summary dumped to d:\tracedrv\tracedrv1.txt.sum

A saída principal dessa execução do Tracefmt é Tracedrv.txt, um arquivo de texto que contém a versão formatada das mensagens de rastreamento em Tracedrv.etl. O texto a seguir mostra o conteúdo de Tracedrv.txt .

EventTrace
[0]0338.0E40::06/10/2005-14:25:43.968 [tracedrv]IOCTL = 1
[0]0338.0E40::06/10/2005-14:25:43.968 [tracedrv]Hello, 1 Hi
[0]0338.0E40::06/10/2005-14:25:43.968 [tracedrv]Hello, 2 Hi
[0]0338.0E40::06/10/2005-14:25:43.968 [tracedrv]Hello, 3 Hi
[0]0338.0E40::06/10/2005-14:25:43.968 [tracedrv]Machine State :: Offline
[0]0338.0E40::06/10/2005-14:25:43.968 [tracedrv]Function Return=0x8000000f(STATUS_DEVICE_POWERED_OFF)
[0]0338.0E40::06/10/2005-14:25:45.539 [tracedrv]IOCTL = 2
[0]0338.0E40::06/10/2005-14:25:45.539 [tracedrv]Hello, 1 Hi
[0]0338.0E40::06/10/2005-14:25:45.539 [tracedrv]Hello, 2 Hi
[0]0338.0E40::06/10/2005-14:25:45.539 [tracedrv]Hello, 3 Hi
[0]0338.0E40::06/10/2005-14:25:45.539 [tracedrv]Machine State :: Offline
[0]0338.0E40::06/10/2005-14:25:45.539 [tracedrv]Function Return=0x8000000f(STATUS_DEVICE_POWERED_OFF)