次の方法で共有


グローバル ロガー トレース セッション

グローバル ロガー トレース セッションは、デバイス ドライバーによって生成されたイベントなど、システムが完全に動作する前にブート プロセス中に発生したイベントを記録します。 これは、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) です。

時計タイプ

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

イベント トレース ログ ファイルのパス (省略可能) とファイル名。 既定値は \System32\LogFiles\WMI\trace.log %SystemRoot%です。

FlushTimer

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 レジストリ エントリの定数を表します。

価値 定数 説明

0x0

EVENT_TRACE_FILE_MODE_NONE

イベント トレース ログ ファイルは作成されません。

0x1

EVENT_TRACE_FILE_MODE_SEQUENTIAL

イベント トレース ログ ファイルはシーケンシャルです。

0x2

イベントトレースファイルモードサーキュラー

イベント トレース ログ ファイルは循環です。

0x4

EVENT_TRACE_FILE_MODE_APPEND

トレース メッセージを既存のログ ファイルに追加します。 このモードは、順次ファイルでのみ有効です。

0x8

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

イベントトレースノンストッパブルモード

StopTrace を呼び出しても、トレース セッションは停止されません。

この機能により、ユーザーは、システムが診断とチューニングに必要なトレース セッションを停止できなくなります。

0x100

EVENT_TRACE_REAL_TIME_MODE

リアルタイム トレース セッションを指定します。

0x200

EVENT_TRACE_DELAY_OPEN_FILE_MODE

内部使用のみ。

0x400

EVENT_TRACE_BUFFERING_MODE

イベントはバッファーに保持されます。 ログ ファイルに書き込まれたり、トレース コンシューマーに配信されたりすることはありません。

0x800

イベントトレースプライベートロガーモード

プライベート トレース セッションを指定します。 このフラグは、グローバル ロガー トレース セッションでは無効です。

0x1000

EVENT_TRACE_ADD_HEADER_MODE

内部使用のみ。

0x2000

EVENT_TRACE_USE_KBYTES_FOR_SIZE

MaximumFileSize の値を MB ではなく KB 単位で解釈します。

0x4000

EVENT_TRACE_USE_GLOBAL_SEQUENCE

トレース メッセージのグローバル シーケンス番号を生成します。 これらの数値は、コンピューター上のすべてのトレース セッションで一意です。

既定では、トレース メッセージにはシーケンス番号はありません。

0x8000

EVENT_TRACE_USE_LOCAL_SEQUENCE

トレース メッセージのローカル シーケンス番号を生成します。 これらの数値は、トレース セッション内で一意です。

既定では、トレース メッセージにはシーケンス番号はありません。

0x10000

EVENT_TRACE_RELOG_MODE

内部使用のみ。

0x80000

イベントトレース_KDフィルターモード

トレース メッセージをカーネル デバッガーにリダイレクトし、トレース バッファー サイズをデバッガーの最大バッファー サイズである 3 KB に設定します。

0x1000000

EVENT_TRACE_MODE_RESERVED

グローバル ロガー トレース セッションでは無効です。

0x01000000

EVENT_TRACE_USE_PAGED_MEMORY

ページング可能なメモリからトレース セッション バッファーを割り当てます。 デフォルトで、バッファーはページング不可能なメモリから割り当てられます。