Ejemplo 9: Creación de un archivo TMF
El siguiente comando dirige a Tracefmt para dar formato y mostrar los mensajes de seguimiento en Tracedrv.etl, un registro de seguimiento generado por Tracedrv. TraceDrv, un controlador de ejemplo diseñado para el seguimiento de software, está disponible en el repositorio de ejemplos de controladores de Windows en GitHub.
El comando incluye el parámetro -i , que dirige Tracefmt para crear un archivo 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
El comando usa el parámetro -i para indicar la ruta de acceso completa al archivo de imagen para Tracedrv, Tracedrv.sys, en el WDK.
-i d:\tracedrv\tracedrv.sys
Usa el parámetro -r para indicar la ruta de acceso completa a la versión completa del archivo de símbolos de PDB para Tracedrv, Tracedrv.pdb. Observe que especifica una ruta de acceso con este parámetro, pero no un nombre de archivo. Tracefmt busca la versión correcta del archivo de símbolos en función del archivo de imagen especificado por -i.
-r d:\tracedrv
El comando usa el parámetro -p para dirigir Tracefmt para colocar el archivo TMF que crea para Tracedrv en el directorio d:\tracedrv\tmfs .
-p d:\tracedrv\tmfs
El comando usa el parámetro -o para dirigir Tracefmt para colocar el archivo de salida de mensajes de seguimiento con formato en el archivo d:\tracedrv\tracedrv1.txt . Este parámetro también coloca el archivo de resumen en el mismo directorio con el nombre de archivo Tracedrv.txt.sum.
-o d:\tracedrv\tracedrv1.txt
El parámetro -v solicita mensajes detallados (detallados).
En respuesta a este comando, Tracefmt busca y busca el archivo PDB para Tracedrv.sys en el directorio d:\tracedrv. Extrae las instrucciones de formato de mensaje de seguimiento del archivo PDB y las almacena en un archivo TMF, como se muestra en la instrucción en negrita en la salida siguiente. El nombre del archivo TMF es el GUID del mensaje del proveedor de seguimiento en Tracedrv. Tracefmt también crea un archivo de control de mensajes de seguimiento (TMC) y lo coloca en el mismo directorio.
Después de que Tracefmt crea el archivo TMF, lee el archivo para buscar las instrucciones de formato de los mensajes de seguimiento en el registro de seguimiento Tracedrv.etl. Comienza buscando en el archivo Default.tmf y encuentra el archivo TMf que creó en el directorio d:\tracedrv\tmfs.
Antes de dar formato a los datos, Tracefmt muestra los datos sobre el registro de seguimiento. Los datos comienzan con la instrucción Logfile d:\tracedrv\tracedrv.etl .
Las instrucciones finales de la salida muestran que Tracefmt ha formateado correctamente los 13 eventos en el registro de seguimiento y ha creado los archivos Tracedrv1.txt y 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
La salida principal de esta ejecución de Tracefmt es Tracedrv.txt, un archivo de texto que contiene la versión con formato de los mensajes de seguimiento en Tracedrv.etl. En el texto siguiente se muestra el contenido 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)