例 9: TMF ファイルの作成
次のコマンドは、Tracedrv によって生成されたトレース ログである Tracedrv.etl にトレース メッセージを書式設定して表示するように Tracefmt に指示します。 ソフトウェア トレース用に設計されたサンプル ドライバーである TraceDrv は、GitHub の Windows ドライバー サンプル リポジトリで入手できます。
このコマンドには -i パラメーターが含まれており、Tracefmt に Tracedrv 用の TMF ファイルを作成するよう指示します。
tracefmt d:\tracedrv\tracedrv.etl -i d:\tracedrv\tracedrv.sys -r d:\tracedrv
-p d:\tracedrv\tmfs -o d:\tracedrv\tracedrv1.txt -v
このコマンドでは、 -i パラメーターを使用して、WDK 内の Tracedrv (Tracedrv.sys) のイメージ ファイルへの完全修飾パスを示します。
-i d:\tracedrv\tracedrv.sys
-r パラメーターを使用して、Tracedrv、Tracedrv.pdb の PDB シンボル ファイルの完全なバージョンへの完全修飾パスを示します。 このパラメーターを使用してパスを指定しますが、ファイル名は指定しないことに注意してください。 Tracefmt は、 -i で指定されたイメージ ファイルに基づいて、シンボル ファイルの正しいバージョンを検索します。
-r d:\tracedrv
このコマンドでは、 -p パラメーターを使用して Tracefmt に指示し、Tracedrv 用に作成した TMF ファイルを d:\tracedrv\tmfs ディレクトリに配置します。
-p d:\tracedrv\tmfs
このコマンドでは、 -o パラメーターを使用して Tracefmt に指示し、書式設定されたトレース メッセージの出力ファイルを d:\tracedrv\tracedrv1.txt ファイルに配置します。 また、このパラメーターは、Tracedrv.txt.sum ファイル名を持つ同じディレクトリにサマリー ファイルを配置します。
-o d:\tracedrv\tracedrv1.txt
-v パラメーターは、詳細 (詳細) メッセージを要求します。
このコマンドに応答して、Tracefmt は d:\tracedrv ディレクトリ内のTracedrv.sysの PDB ファイルを検索し、検索します。 次の出力の太字のステートメントに示すように、PDB ファイルからトレース メッセージの書式設定命令を抽出し、TMF ファイルに格納します。 TMF ファイルの名前は、Tracedrv の トレース プロバイダーの メッセージ GUID です。 Tracefmt では、トレース メッセージ コントロール (TMC) ファイルも作成され、同じディレクトリに配置されます。
Tracefmt は、TMF ファイルを作成した後、Tracedrv.etl トレース ログ内のトレース メッセージの書式設定手順を見つけるためにファイルを読み取ります。 まず Default.tmf ファイルを検索し、d:\tracedrv\tmfs ディレクトリで作成した TMf ファイルを検索します。
データを書式設定する前に、Tracefmt はトレース ログに関するデータを表示します。 データは Logfile d:\tracedrv\tracedrv.etl ステートメントで始まります。
出力の最後のステートメントは、Tracefmt がトレース ログ内の 13 個のイベントを正常に書式設定し、Tracedrv1.txtと 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
この Tracefmt 実行の主な出力は、tracedrv.etl のトレース メッセージの書式設定されたバージョンを含むテキスト ファイルであるTracedrv.txtです。 次のテキストは、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)