Esempio 9: Creazione di un file TMF

Il comando seguente indirizza Tracefmt a formattare e visualizzare i messaggi di traccia in Tracedrv.etl, un log di traccia generato da Tracedrv. TraceDrv, un driver di esempio progettato per la traccia software, è disponibile nel repository di esempi di driver Windows in GitHub.

Il comando include il parametro -i , che indirizza Tracefmt per creare un file TMF per Tracedrv.

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

Il comando usa il parametro -i per indicare il percorso completo del file di immagine per Tracedrv, Tracedrv.sys, nel WDK.

-i d:\tracedrv\tracedrv.sys

Usa il parametro -r per indicare il percorso completo della versione completa del file di simboli PDB per Tracedrv, Tracedrv.pdb. Si noti che si specifica un percorso con questo parametro, ma non un nome file. Tracefmt trova la versione corretta del file di simboli in base al file di immagine specificato da -i.

-r d:\tracedrv

Il comando usa il parametro -p per indirizzare Tracefmt per inserire il file TMF creato per Tracedrv nella directory d:\tracedrv\tmfs .

-p d:\tracedrv\tmfs

Il comando usa il parametro -o per indirizzare Tracefmt per inserire il file di output dei messaggi di traccia formattati nel file d:\tracedrv\tracedrv1.txt . Questo parametro inserisce anche il file di riepilogo nella stessa directory con il nome file Tracedrv.txt.sum.

-o d:\tracedrv\tracedrv1.txt

Il parametro -v richiede messaggi dettagliati (dettagliato).

In risposta a questo comando, Tracefmt cerca e trova il file PDB per Tracedrv.sys nella directory d:\tracedrv. Estrae le istruzioni di formattazione del messaggio di traccia dal file PDB e le archivia in un file TMF, come illustrato nell'istruzione in grassetto nell'output che segue. Il nome del file TMF è il GUID del messaggio del provider di traccia in Tracedrv. Tracefmt crea anche un file TMC (Trace Message Control) e lo inserisce nella stessa directory.

Dopo che Tracefmt crea il file TMF, legge il file per trovare le istruzioni di formattazione per i messaggi di traccia nel log di traccia. Inizia cercando nel file Default.tmf e trova il file TMf creato nella directory d:\tracedrv\tmfs.

Prima di formattare i dati, Tracefmt visualizza i dati relativi al log di traccia. I dati iniziano con l'istruzione Logfile d:\tracedrv\tracedrv.etl .

Le istruzioni finali nell'output mostrano che Tracefmt ha formattato correttamente i 13 eventi nel log di traccia e creato i file 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

L'output primario di questa esecuzione Tracefmt è Tracedrv.txt, un file di testo contenente la versione formattata dei messaggi di traccia in Tracedrv.etl. Il testo seguente mostra il contenuto di 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)