トレース セッション

トレース セッションとは、トレース プロバイダーがトレース メッセージを生成する期間です。 トレース ログまたはトレース コンシューマーに配信 (「フラッシュ」) されるまでトレース メッセージを格納するトレース セッションのバッファーのセットを保持します。

トレース セッションには、トレース ログ セッション、リアルタイム トレース セッション、バッファー トレース セッションの 3 種類があります。 1 つのトレース セッションには、トレース ログ セッション、リアルタイム トレース セッション、またはその両方を指定できます。 バッファー内のトレース セッションは排他的です。

さらに、NT カーネル ロガー トレース セッショングローバル ロガー トレース セッションなど、プライベート トレース セッションと予約済みトレース セッションがあり、ログ セッションまたはリアルタイム セッションとして実行できます。 標準ツールを使用してこれらのセッションを制御し、結果のトレース メッセージを表示できます。

トレース ログ セッション

トレース ログ セッションでは、トレース メッセージはトレース バッファーからバイナリ形式でログ ファイルに書き込まれます。 これは、標準の既定の種類のトレース セッションです。

リアルタイム トレース セッション

リアルタイム トレース セッションでは、トレース メッセージは、ログ ファイルに送信されるのではなく、TraceViewTracefmt などのトレース コンシューマーに直接配信されます。

バッファー済みトレース セッション

バッファー済みトレース セッションでは、トレース メッセージはトレース バッファーに再メインされます。トレース ログに書き込まれたり、トレース コンシューマーに配信されたりしません。 バッファーは、メイン循環ファイルのように保持されます。 いっぱいになると、最新のトレース メッセージによってバッファー内の最も古いトレース メッセージが上書きされます。

バッファー済トレース セッションは、Windows Vista 以降のバージョンの Windows でのみサポートされます。

一般に、ソフトウェア トレースはオーバーヘッドをほとんど発生させないものの、バッファーに格納されたトレース セッションには、すべてのトレース セッションの種類のオーバーヘッドが最も少なくなります。 長期間トレースでき、その後、関心となることが発生した場合、デバッガーを使用して現在のバッファーの内容を調べたり、現在のバッファーの内容をトレース ログに保存したりできます。

トレース バッファー内のトレース メッセージを表示するには、!wmitrace 専用デバッガー拡張機能を使用します。 この拡張機能の詳細は、「Windows 用デバッグ ツール」を参照してください。

バッファーの内容をトレース ログにフラッシュするには、tracelog -flush コマンドの -f パラメーターを使用します。

バッファー済みトレース セッションを開始するには、tracelog -start コマンドの -buffering パラメーターを使用します。 詳細については、「Tracelog コマンド構文」を参照してください。

プライベート トレース セッション

プライベート トレース セッションは、トレースするユーザー モード プロセスの一部としてユーザー モードで実行されるトレース セッションです。 (標準トレース セッションはカーネルで実行されます。)プライベート トレース セッションは、ユーザー モード トレース セッションまたはプロセス トレース セッションとも呼ばれます。

一度に複数のプライベート トレース セッションを実行できるものの、各プロセスで実行できるプライベート トレース セッションは 1 つだけです。

プライベート トレース セッションのリアルタイム トレースを実行することはできません。 トレース メッセージはログに書き込む必要があります。

プライベート トレース セッションで使用されるバッファーは、常にページング可能です。 これらのバッファーにページングメモリまたは非ページ メモリを指定することはできません。

プライベート トレース セッションからデバッガーにトレース メッセージを送信することはできません。 WMI トレース拡張機能 (!wmitrace) は、プライベート トレース セッションをサポートしていません。

プライベート イベント トレース セッションの詳細については、Microsoft Windows SDK のドキュメントを参照してください。