次の方法で共有


例 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)