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

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

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