グローバル ロガー トレース セッション
グローバル ロガー トレース セッション は、デバイス ドライバーによって生成されたイベントなど、システムが完全に動作する前にブート プロセス中に発生したイベントを記録します。 これは、Windows に組み込まれている予約済みトレース セッションです。
グローバル ロガー トレース セッションは、常にトレース ログにメッセージを書き込みます。 グローバル ロガーは、リアルタイム トレース セッションまたはバッファートレース セッションをサポートしていません。
グローバル ロガーはオペレーティング システムのブート プロセスの早い段階で使用できる必要があるため、関数呼び出しの代わりにレジストリ エントリ (HKLM\SYSTEM\CurrentControlSet\Control\WMI\GlobalLogger サブキー) を使用して開始および構成されます。 開始後、グローバル ロガーは通常のイベント トレース セッションのように動作します。
グローバル ロガー トレース セッションでは、予約済みセッション名 "GlobalLogger" を使用します。 コントロール GUID は、 定数 GlobalLoggerGuidで表されます。 グローバル ロガー トレース セッションを作成し、コンピューターを再起動してトレース セッションを開始します。 一度に実行できるグローバル ロガー トレース セッションは 1 つだけです。
グローバル ロガー トレース セッションを作成するには、 Tracelog を使用 します。 レジストリ サブキーと、トレース セッション オプションを格納するエントリが自動的に作成されます。 コンピューターを再起動すると、グローバル ロガー トレース セッションが開始されます。 詳細については、「Tracelog コマンド構文」を参照してください。
グローバル ロガー トレース セッションからトレース メッセージを書式設定するには、System.tmf、WDK に含まれる トレース メッセージ形式ファイル で Tracefmt を使用します。
グローバル ロガー セッションはレジストリ エントリによってトリガーされるため、エントリがレジストリに表示されるたびに実行されます。 システムが起動するたびにグローバル ロガー セッションが開始されないようにするには、 Start エントリの値を 0 に設定するか、レジストリ エントリをすべて削除します。
グローバル ロガー トレース セッションを NT カーネル ロガー トレース セッションに変換して、ブート プロセス中にカーネルをトレースすることができます。 詳細については、「ブート時グローバル ロガー セッション」を参照してください 。
カーネル モード ドライバーやユーザー モード アプリケーションなどのトレース プロバイダーは、グローバル ロガー トレース セッションにログを記録できます。 これにより、システムの起動時にドライバーまたはその他のトレース プロバイダーをトレースできます。 詳細については、「グローバル ロガー セッションへのログ記録」を参照してください 。
グローバル ロガー トレース セッションの制限事項
グローバル ロガー トレース セッションは非常に便利ですが、その制限事項に注意することが重要です。
一度に実行できるグローバル ロガー セッションは 1 つだけです。
グローバル ロガー セッションでは、有効化通知はプロバイダーに送信されません。
グローバル ロガー のレジストリ エントリはメインレジストリに再び追加され、手動でリセットまたは削除するか、 tracelog -remove コマンドを使用するまで有効です。 リセットするまでは、システムを起動するたびにグローバル ロガー セッションが開始されます。
Windows ACPI ロガーは、グローバル ロガー トレース セッションに対して永続的に有効になっています。 このロガーからのトレース メッセージは、トレース ログに表示されます。
ドライバーがグローバル ロガー セッションへのログ記録中に標準トレース セッションが開始された場合、ドライバーは切り替えて、標準トレース セッションへのログ記録を開始します。
グローバル ロガー レジストリ エントリ
次の表に、グローバル ロガー セッションを構成するレジストリ エントリを示します。 これらのエントリは HKLM\SYSTEM\CurrentControlSet\Control\WMI\GlobalLogger サブキーにあります。 開始 エントリのみが必要です。
このテーブルのレジストリ エントリに加えて、 GlobalLogger サブキーの下に ControlGUID サブキーを追加して、グローバル ロガー トレース セッションにログを記録するトレース プロバイダー (ドライバーなど) を表すこともできます。 詳細については、「グローバル ロガー セッションへのログ記録」を参照してください 。
入力 | データの種類 | 説明 |
---|---|---|
Start |
REG_DWORD |
1 (オン) に設定すると、次にシステムが起動したときにグローバル ロガー セッションが開始されます。 0 = off, 1=on |
BufferSize |
REG_DWORD |
各バッファーのサイズを KB 単位で指定します。 規定値は 0x40 (64 KB)です。 |
ClockType |
REG_DWORD |
トレース メッセージのタイム スタンプに使用されるタイマーを指定します。 Windows Vista以降では、既定値は 1です 。 Windows Vista より前のオペレーティング システムでは、既定値は 2です。 1 = パフォーマンス カウンター値 (高解像度) 2 = システムタイマー 3 = CPU サイクル クロック |
EnableKernelFlags |
REG_BINARY |
グローバル ロガー セッションを NT カーネル ロガー トレース セッションに変換し、カーネル トレースに含まれるイベントを指定します。 詳細については、「ブート時グローバル ロガー セッション」を参照してください 。 |
FileCounter |
REG_DWORD |
グローバル ロガー セッションによって生成されたイベント トレース ログ ファイルの数を格納します。 システムは、 FileMax の値に達するまでこの値 をインクリメントします。 その後、値を 0 にリセットします。 このカウンターにより、システムはグローバル ロガー トレース ログ ファイルを上書きできなくなります。 |
FileMax |
REG_DWORD |
システムで許可されるイベント トレース ログ ファイルの最大数を指定します。 トレース ログの数が指定した最大値に達すると、最も古いログから始まるログの上書きが開始されます。 既定値は、最大値がないことを示す 0 です。 |
ファイル名 |
REG_SZ |
イベント トレース ログ ファイルのパス (省略可能) とファイル名。 既定値は %SystemRoot%\System32\LogFiles\WMI\trace.log です。 |
フラッシュタイマー |
REG_DWORD |
トレース バッファーを強制的にフラッシュする頻度 (秒単位) を指定します。 この強制フラッシュは、バッファーがいっぱいになったときやトレース セッションが停止するたびに発生する自動フラッシュに加えて行われます。 既定値は0です。 既定では、バッファーは満杯の場合にのみフラッシュされます。 最小フラッシュ時間は 1 秒です。 |
LogFileMode |
REG_DWORD |
ログ セッション オプションを指定します。 Windows Vista 以降のバージョンの Windows でのみサポートされます。 |
MaximumBuffers |
REG_DWORD |
セッションに割り当てることができるバッファの最大数を指定します。 デフォルト値は 0x19 (25)です。 |
MaximumFileSize |
REG_DWORD |
イベントトレースログファイルの最大サイズを指定します。 既定では、最大ファイルサイズはありません。 |
MinimumBuffers |
REG_DWORD |
セッションの開始時に割り当てられるバッファーの数を指定します。 デフォルト値は0x3です。 |
Status |
REG_DWORD |
グローバル ロガー トレース セッションの開始の試行からのリターン コードを格納します。 セッションの開始に失敗した場合、このエントリの値は Win32 エラー コードです。 セッションが開始された場合、このエントリの値はERROR_SUCCESS。 |
作成したこれらのレジストリ エントリはレジストリに残り、削除するか値を変更するまで有効です。 したがって、グローバル ロガー セッションの実行後、 tracelog -remove GlobalLogger コマンドを使用して、 Start エントリの値を 0 に設定し、他のグローバル ロガー レジストリ エントリを削除します。 それ以外の場合は、コンピューターを再起動するたびにグローバル ロガー セッションが実行され、結果のログ ファイルは非常に大きくなる可能性があります。
ロギング・モード定数
次の表に、 HKLM\System\CurrentControlSet\Control\WMI\GlobalLogger サブキーの LogFileMode レジストリ エントリの有効な値を示します。 このエントリは、リアルタイム トレース セッション、プライベート トレース セッション、循環ログ記録、バッファリング (ログなし) など、グローバル ロガー トレース セッションのオプションを設定するために使用されます。 このレジストリ エントリは、Windows Vista 以降のバージョンの Windows でのみサポートされます。
このレジストリ エントリは、 EVENT_TRACE_PROPERTIES構造体の LogFileMode メンバーに対応します。 その値は、ログ モード定数に対応します。 EVENT_TRACE_PROPERTIES構造とログ モード定数については、Microsoft Windows SDK のドキュメントを参照してください。
この表は、定数の 16 進値を示すためにここに表示されます。 これらの値またはこれらの値の合計を使用して、 LogFileMode レジストリ エントリの定数を表します。
Value | 定数 | 説明 |
---|---|---|
0x0 |
EVENT_TRACE_FILE_MODE_NONE |
イベント トレース ログ ファイルは作成されません。 |
0箸1 |
EVENT_TRACE_FILE_MODE_SEQUENTIAL |
イベント トレース ログ ファイルはシーケンシャルです。 |
0等2 |
EVENT_TRACE_FILE_MODE_CIRCULAR |
イベント トレース ログ ファイルは循環です。 |
0餡4 |
EVENT_TRACE_FILE_MODE_APPEND |
トレース メッセージを既存のログ ファイルに追加します。 このモードは、順次ファイルでのみ有効です。 |
0酒8 |
EVENT_TRACE_FILE_MODE_NEWFILE |
既存のファイルが MaximumFileSize エントリの値に達するたびに、新しいイベント トレース ログ ファイルを作成します (上記の表を参照)。 |
0x20 |
EVENT_TRACE_FILE_MODE_PREALLOCATE |
イベント トレース ログ ファイルの領域を予約します。 EVENT_TRACE_FILE_MODE_SEQUENTIAL またはEVENT_TRACE_FILE_MODE_CIRCULARでのみ有効で、EVENT_TRACE_FILE_MODE_NEWFILEでは無効です。 |
0x40 |
EVENT_TRACE_NONSTOPPABLE_MODE |
StopTrace を呼び出しても、トレース セッションは停止されません。 この機能により、ユーザーは、システムが診断とチューニングに必要なトレース セッションを停止できなくなります。 |
0x100 |
EVENT_TRACE_REAL_TIME_MODE |
リアルタイム トレース セッションを指定します。 |
0x200 |
EVENT_TRACE_DELAY_OPEN_FILE_MODE |
内部使用のみ。 |
0x400 |
EVENT_TRACE_BUFFERING_MODE |
イベントはバッファーに保持されます。 ログ ファイルに書き込まれたり、トレース コンシューマーに配信されたりすることはありません。 |
0x800 |
EVENT_TRACE_PRIVATE_LOGGER_MODE |
プライベート トレース セッションを指定します。 このフラグは、グローバル ロガー トレース セッションでは無効です。 |
0x1000 |
EVENT_TRACE_ADD_HEADER_MODE |
内部使用のみ。 |
0x2000 |
EVENT_TRACE_USE_KBYTES_FOR_SIZE |
MB (メガバイト)ではなく、KB (キロバイト)の MaximumFileSize の値を解釈します。 |
0x4000 |
EVENT_TRACE_USE_GLOBAL_SEQUENCE |
トレース メッセージのグローバル シーケンス番号を生成します。 これらの番号は、コンピューター上のすべてのトレース セッションで一意です。 既定では、トレース メッセージにはシーケンス番号はありません。 |
0x8000 |
EVENT_TRACE_USE_LOCAL_SEQUENCE |
トレース メッセージのローカル シーケンス番号を生成します。 これらの数値は、トレース セッション内で一意です。 既定では、トレース メッセージにはシーケンス番号はありません。 |
0x10000 |
EVENT_TRACE_RELOG_MODE |
内部使用のみ。 |
0x80000 |
EVENT_TRACE_KD_FILTER_MODE |
トレース メッセージをカーネル デバッガーにリダイレクトし、トレース バッファー サイズをデバッガーの最大バッファー サイズである 3 KB (キロバイト)に設定します。 |
0x1000000 |
EVENT_TRACE_MODE_RESERVED |
グローバル ロガー トレース セッションでは無効です。 |
0x01000000 |
EVENT_TRACE_USE_PAGED_MEMORY |
ページング可能なメモリからトレース セッション バッファーを割り当てます。 既定では、バッファーは非ページ メモリから割り当てられます。 |