ログ モード定数

次の定数は、イベント トレース セッションで使用できるログ モードを表します。

定数は、EVENT_TRACE_LOGFILE、EVENT_TRACE_PROPERTIESおよびTRACE_LOGFILE_HEADER構造体の LogFileMode メンバー使用されます。 これらの定数は、 Evntrace.h ヘッダー ファイルで定義されています。

モード 説明
EVENT_TRACE_FILE_MODE_NONE (0x00000000) 最大ファイル サイズが指定されていない EVENT_TRACE_FILE_MODE_SEQUENTIAL と同じです。
EVENT_TRACE_FILE_MODE_SEQUENTIAL (0x00000001) イベントをログ ファイルに順番に書き込みます。は、ファイルが最大サイズに達すると停止します。 EVENT_TRACE_FILE_MODE_CIRCULAREVENT_TRACE_FILE_MODE_NEWFILEでは使用しないでください。
EVENT_TRACE_FILE_MODE_CIRCULAR (0x00000002) イベントをログ ファイルに書き込みます。 ファイルが最大サイズに達すると、最も古いイベントが受信イベントに置き換えられます。マルチプロセッサ コンピューターでは、循環ログ ファイルの内容が順に表示されないことに注意してください。
EVENT_TRACE_FILE_MODE_APPEND、EVENT_TRACE_FILE_MODE_NEWFILEまたはEVENT_TRACE_FILE_MODE_SEQUENTIALでは使用しないでください。
EVENT_TRACE_FILE_MODE_APPEND (0x00000004) 既存のシーケンシャル ログ ファイルにイベントを追加します。 ファイルが存在しない場合は、そのファイルを作成します。 時計の解決に システム時刻 を指定した場合にのみ使用します。それ以外の場合、 ProcessTrace は正しくないタイム スタンプを持つイベントを返します。 EVENT_TRACE_FILE_MODE_APPENDを使用する場合、BufferSizeNumberOfProcessorsClockType の値を明示的に指定し、ロガーと追加するファイルの両方で同じである必要があります。
EVENT_TRACE_REAL_TIME_MODE、EVENT_TRACE_FILE_MODE_CIRCULAREVENT_TRACE_FILE_MODE_NEWFILEまたはEVENT_TRACE_PRIVATE_LOGGER_MODEでは使用しないでください。
Windows 2000: この値はサポートされていません。
EVENT_TRACE_FILE_MODE_NEWFILE (0x00000008) ファイルが最大サイズに達すると、自動的に新しいログ ファイルに切り替わります。 EVENT_TRACE_PROPERTIESMaximumFileSize メンバーを設定する必要があります。指定したファイル名は、書式設定された文字列である必要があります (たとえば、文字列には c:\test%d.etl などの %d が含まれています)。 新しいファイルが作成されるたびに、カウンターがインクリメントされ、その値が使用され、書式設定された文字列が更新され、結果の文字列がファイル名として使用されます。
このオプションは、プライベート イベント トレース セッションでは使用できません。NT カーネル ロガー セッションには使用しないでください。
EVENT_TRACE_FILE_MODE_CIRCULAR、EVENT_TRACE_FILE_MODE_APPENDまたはEVENT_TRACE_FILE_MODE_SEQUENTIALでは使用しないでください。
Windows 2000: この値はサポートされていません。
EVENT_TRACE_FILE_MODE_PREALLOCATE(0x00000020) 予約EVENT_TRACE_PROPERTIES。ログ ファイルのディスク領域の MaximumFileSize バイト。 ファイルは、循環ログ ファイルとシーケンシャル ログ ファイルの両方について、ログ記録中に領域全体を占有します。 セッションを停止すると、ログ ファイルは必要なサイズに縮小されます。 EVENT_TRACE_PROPERTIESを設定する必要があります 。MaximumFileSize
プライベート イベント トレース セッションには モードを使用できません。
Windows 2000: この値はサポートされていません。
EVENT_TRACE_NONSTOPPABLE_MODE(0x00000040) ログ セッションを停止できません。 このモードは Autologger でのみサポートされています。このオプションは、Windows Vista 以降でサポートされています。
.
EVENT_TRACE_SECURE_MODE (0X00000080) セッションにイベントを記録できるユーザーを、 TRACELOG_LOG_EVENT アクセス許可を持つユーザーに制限します。 このオプションは、Windows Vista 以降でサポートされています。
EVENT_TRACE_REAL_TIME_MODE (0x00000100) リアルタイムでコンシューマーにイベントを配信します。 イベントは、プロバイダーがイベントを書き込んだ時点ではなく、バッファーがフラッシュされるときに配信されます。 ログ イベントの呼び出しはバッファーがいっぱいになると最終的に失敗するため、イベントを使用するコンシューマーがない場合は、リアルタイム モードを有効にしないでください。 Windows Vista より前のバージョンでは、イベントが使用されていない場合、イベントは破棄されました。Windows XP または Windows Server 2003 では、1 つのプロセスで複数のリアルタイム コンシューマーを指定しないでください。 代わりに、1 つのスレッドでイベントを使用し、他のスレッドにイベントを配布します。
Windows Vista より前: サポートされているイベントレートはログ ファイルからの読み取りよりもはるかに低いため、リアルタイム モードを使用しないでください (イベントが削除される可能性があります)。 また、複数のプロセッサを持つコンピューターでは、イベントの順序は保証されません。 リアルタイム モードは、トラフィックの少ない通知の種類のイベントに適しています。

このモードは、他のログ ファイル モードと組み合わせることができます。ただし、このモードはEVENT_TRACE_PRIVATE_LOGGER_MODEで使用しないでください。 このモードを他のログ ファイル モードと組み合わせると、バッファーが 1 秒に 1 回フラッシュされ、部分的に塗りつぶされたバッファーがログ ファイルに書き込まれることに注意してください。 たとえば、64k バッファーを使用していて、ログ記録速度が 1 秒ごとに 1 イベントである場合、サービスはログ ファイルに 64k/秒を書き込みます。
EVENT_TRACE_DELAY_OPEN_FILE_MODE(0x00000200) このモードは、イベントが発生するまでログ ファイルを開くのを遅らせるために使用されます。
注:
Windows Vista 以降では、このモードは適用されないため、使用しないでください。
EVENT_TRACE_BUFFERING_MODE (0x00000400) このモードでは、循環メモリ バッファーにイベントを書き込みます。 バッファーの合計サイズを超えて書き込まれたイベントは、バッファーに残っている最も古いイベントを削除します。 このメモリ バッファーのサイズは、 MinimumBuffersBufferSize の積です ( EVENT_TRACE_PROPERTIESを参照)。この数式の結果として、 EVENT_TRACE_BUFFERING_MODE を使用するすべてのバッファーは MaximumBuffers 値を無視します。
イベントはログ ファイルに書き込まれず、リアルタイムで配信されず、ETW はバッファーをフラッシュしません。 バッファーのスナップショットを取得するには、FlushTrace 関数を呼び出します。
このモードは、 WMITrace カーネル デバッガー拡張機能を使用してメモリ内バッファーの内容を表示する機能と組み合わせてデバイス ドライバーをデバッグする場合に特に便利です。
EVENT_TRACE_FILE_MODE_SEQUENTIAL、EVENT_TRACE_FILE_MODE_CIRCULAREVENT_TRACE_FILE_MODE_APPENDEVENT_TRACE_FILE_MODE_NEWFILEEVENT_TRACE_REAL_TIME_MODEでは使用しないでください。
EVENT_TRACE_PRIVATE_LOGGER_MODE (0x00000800) イベント トレース プロバイダーと同じプロセスで実行されるユーザー モードのイベント トレース セッションを作成します。 バッファーのメモリは、プロセスのメモリから取得されます。 カーネルからのデータを必要としないプロセスでは、プライベート イベント トレース セッションを使用することで、カーネル モードの遷移に関連するオーバーヘッドを排除できます。
プロバイダーが複数のプロセスによって登録されている場合、ETW はプロセス識別子をログ ファイル名に追加して、一意のログ ファイル名を作成します。 たとえば、コントローラーでログ ファイル名が c:\mylogs\myprivatelog.etl として指定されている場合、ETW はログ ファイルを c:\mylogs\myprivatelog.etl_nnnn として作成します。ここで、nnnn はプロセス識別子です。 プロセス識別子は、プロバイダーを登録する最初のプロセスには追加されず、プロバイダーを登録する後続のプロセスにのみ追加されます。
プライベート イベント トレース セッションには、次の制限があります。
  • プライベート セッションでは、実行中のプロセスのスレッドに対してのみイベントを記録できます。
  • プロセスごとに最大 8 つのプライベート セッションを使用できます。
  • プライベート セッションは、リアルタイム配信では使用できません。
  • プライベート セッションによって生成されるイベントには、カーネル モード命令とユーザー モード命令の実行時間、または使用される CPU 時間のスレッド レベルの詳細は含まれません。
システム全体のプライベート ロガーが開始されたときに、プロセス ID フィルターと実行可能名フィルターをセッション制御 API に渡すようになりました。 プロセス間のシナリオで最適な結果を得るには、プロバイダーの有効化/拡張呼び出しを含め、セッション中のすべての制御操作に同じフィルターを渡す必要があります。 フィルターの形式は 、EnableTraceEx2 で使用されるものと同じであることに注意してください。
このモードは、 EVENT_TRACE_PRIVATE_IN_PROC モードと組み合わせて使用できます。
Windows 10より前のバージョン 1703: LocalSystem、管理者、管理者グループ内の管理者グループ内のユーザーのみがプライベート セッションを作成できます。 EVENT_TRACE_PRIVATE_IN_PROC フラグを含める場合、すべてのユーザーがインプロセス プライベート セッションを作成できます。 また、以前のバージョンの Windows では、プロセスごとに 1 つのプライベート セッションしか存在できません (EVENT_TRACE_PRIVATE_IN_PROC モードも指定されていない限り、最大 3 つのインプロセス プライベート セッションを作成できます)。
Windows Vista より前: [パフォーマンス ログ ユーザー] グループのユーザーは、プライベート セッションを作成することもできます。

EVENT_TRACE_REAL_TIME_MODEでは使用しないでください。
Windows 7 および Windows Server 2008 R2 より前: EVENT_TRACE_FILE_MODE_NEWFILEでは使用しないでください。
EVENT_TRACE_ADD_HEADER_MODE(0x00001000) このオプションは、ログ ファイルにヘッダーを追加します。
注:
Windows Vista 以降では、このモードは適用されないため、使用しないでください。
EVENT_TRACE_USE_KBYTES_FOR_SIZE(0x00002000) ファイルのサイズを指定するには、測定単位としてキロバイトを使用します。 既定の測定単位はメガバイトです。 このモードは、AutoLogger セッションの MaxFileSize レジストリ値と、EVENT_TRACE_PROPERTIESMaximumFileSize メンバーに適用されます。 このオプションは、Windows Vista 以降でサポートされています。
EVENT_TRACE_USE_GLOBAL_SEQUENCE(0x00004000) イベント トレース セッション間で一意のシーケンス番号を使用します。 このモードは、 TraceMessage 関数を使用してログに記録されたイベントにのみ適用されます。 詳細については、使用状況の詳細については TraceMessage に関するページを参照してください。
EVENT_TRACE_USE_GLOBAL_SEQUENCEEVENT_TRACE_USE_LOCAL_SEQUENCE は相互に排他的です。
Windows 2000: この値はサポートされていません。
EVENT_TRACE_USE_LOCAL_SEQUENCE (0x00008000) 個々のイベント トレース セッションに対してのみ一意のシーケンス番号を使用します。 このモードは、 TraceMessage 関数を使用してログに記録されたイベントにのみ適用されます。 詳細については、使用状況の詳細については TraceMessage に関するページを参照してください。
EVENT_TRACE_USE_GLOBAL_SEQUENCEEVENT_TRACE_USE_LOCAL_SEQUENCE は相互に排他的です。
Windows 2000: この値はサポートされていません。
EVENT_TRACE_RELOG_MODE (0x00010000) EVENT_TRACE_HEADERを含めずにイベント ログに記録します。メモ:
このモードは使用しないでください。 内部使用のために予約されています。
Windows 2000: この値はサポートされていません。
EVENT_TRACE_PRIVATE_IN_PROC (0x00020000) プライベート セッションを開始するには、 EVENT_TRACE_PRIVATE_LOGGER_MODE モードと組み合わせて使用します。 このモードでは、プロバイダー GUID を登録したプロセスのみが、その GUID を使用してロガー セッションを開始できます。
プロセスごとに最大 3 つのインプロセス プライベート セッションを作成できます。
このオプションは、Windows Vista 以降でサポートされています。
EVENT_TRACE_MODE_RESERVED(0x00100000) このオプションは、ヒープとクリティカル セクショントレースを通知するために使用されます。 このオプションは、Windows Vista 以降でサポートされています。
EVENT_TRACE_STOP_ON_HYBRID_SHUTDOWN(0x00400000) このオプションは、ハイブリッド シャットダウンのログ記録を停止します。 EVENT_TRACE_STOP_ON_HYBRID_SHUTDOWNEVENT_TRACE_PERSIST_ON_HYBRID_SHUTDOWNも指定されていない場合、呼び出し元がセッション 0 から送信されているかどうかに基づいて、ETW によって既定値が選択されます。このオプションは、Windows 8 および Windows Server 2012 でサポートされています。
EVENT_TRACE_PERSIST_ON_HYBRID_SHUTDOWN(0x00800000) このオプションは、ハイブリッド シャットダウンのログ記録を続行します。 EVENT_TRACE_STOP_ON_HYBRID_SHUTDOWNEVENT_TRACE_PERSIST_ON_HYBRID_SHUTDOWNも指定されていない場合、呼び出し元がセッション 0 から送信されているかどうかに基づいて、ETW によって既定値が選択されます。このオプションは、Windows 8 および Windows Server 2012 でサポートされています。
EVENT_TRACE_USE_PAGED_MEMORY (0x01000000) ページ メモリを使用します。 イベントが非ページ メモリを使い切らないよう、この設定をお勧めします。非ページ バッファーでは、バッファー領域に非ページ メモリが使用されます。 非ページ バッファーはページアウトされないため、ログ セッションは適切に実行されます。 ページング可能なバッファーを使用すると、リソースを消費する負荷が少なくなります。
カーネル モード プロバイダーとシステム ロガーは、このログ モードを指定するセッションにイベントをログに記録できません。
EVENT_TRACE_PRIVATE_LOGGER_MODEが設定されている場合、このモードは無視されます。
NT カーネル ロガーでは、このモードを使用できません。
Windows 2000: この値はサポートされていません。
EVENT_TRACE_SYSTEM_LOGGER_MODE(0x02000000) このオプションは、SystemTraceProvider からイベントを受信します。 StartTraceProperties パラメーター LogFileMode にこのフラグが含まれている場合、ロガーはシステム ロガーになります。このオプションは、Windows 8 および Windows Server 2012 でサポートされています。
EVENT_TRACE_INDEPENDENT_SESSION_MODE(0x08000000) ログ セッションが他のセッションでの EventWrite エラーの影響を受けないことを示します。 このフラグがない場合、プロバイダーが有効になっているセッションのいずれかにイベントを発行できない場合、イベントはどのセッションにも発行されません。 このフラグが設定されている場合、あるセッションにイベントを書き込めなかった場合、 EventWrite 関数は他のセッションでエラー コードを返しません。
EVENT_TRACE_PRIVATE_LOGGER_MODEでは 使用しないでください。
このオプションは、Windows 8.1、Windows Server 2012 R2 以降でサポートされています。
EVENT_TRACE_NO_PER_PROCESSOR_BUFFERING (0x10000000) 異なるプロセッサでログに記録されたイベントを共通バッファーに書き込みます。 このモードを使用すると、システム時間を使用して異なるプロセッサでイベントが発行されている場合に、イベントが順番に表示されない問題を排除できます。 このモードでは、複数のプロセッサ コンピューターでイベントを削除するように循環ログが表示される問題を排除することもできます。
このモードを使用せず、システム時刻を使用する場合、イベントは複数のプロセッサ コンピューターで順序が異なって表示されることがあります。 これは、ETW バッファーがスレッドではなくプロセッサに関連付けられているためです。 その結果、ある CPU から別の CPU にスレッドが切り替えられると、後者の CPU に関連付けられているバッファーは、以前の CPU に関連付けられているバッファーの前にディスクにフラッシュされる可能性があります。
大量のイベント (1 秒あたり 1,000 を超えるイベントなど) が予想される場合は、このモードを使用しないでください。
プロセッサ番号は イベントに含まれていないことに注意してください。
このオプションは、Windows 7、Windows Server 2008 R2 以降でサポートされています。
EVENT_TRACE_ADDTO_TRIAGE_DUMP(0x80000000) このオプションでは、ETW バッファーをトリアージ ダンプに追加します。 このオプションは、Windows 8 および Windows Server 2012 でサポートされています。