プライベート ロガー セッションの構成と開始

プライベート イベント トレース セッションは、イベント トレース プロバイダーと同じプロセスで実行されるユーザー モードのイベント トレース セッションです。プライベート セッションと有効にするプロバイダーはすべて同じプロセス内にある必要があります。 プライベート セッションを使用する利点は、プライベート セッションが同時に実行される最大 64 個のイベント トレース セッションに対してカウントされないことです。

プライベート セッションの構成と開始は、通常のイベント トレース セッションの開始と似ています。 違いは、EVENT_TRACE_PROPERTIES構造体の Wnode.Guid メンバーには、セッションではなくプロバイダーの GUID が含まれている必要があり、プロバイダーが GUID を既に登録している必要がある点です。 EVENT_TRACE_PRIVATE_IN_PROCログ モードも設定した場合は、セッションとプロバイダーに別の GUID を 使用できます。 通常のイベント トレース セッションの開始の詳細については、「イベント トレース セッション の構成と開始」を参照してください。

DllMain からプライベート トレース セッションを開始、停止、またはフラッシュすることはできません。これは、DLL の初期化ルーチンと終了ルーチンで行う必要があります。

Windows 8.1からWindows 10まで、バージョン 1607、イベント ペイロード、スコープ、スタック ウォーク フィルターを EnableTraceEx2 関数とENABLE_TRACE_PARAMETERSおよびEVENT_FILTER_DESCRIPTOR構造体で使用して、ロガー セッション内の特定の条件をフィルター処理できます。 イベント ペイロード フィルターの詳細については、「 TdhCreatePayloadFilter」および 「TdhAggregatePayloadFilters 関数」および 「ENABLE_TRACE_PARAMETERSEVENT_FILTER_DESCRIPTORおよびPAYLOAD_FILTER_PREDICATE 構造体」を参照してください。

Windows 10 バージョン 1703 以降では、低い特権のユーザーが開始したプロセスでプライベート ロガー セッションを開始できるようになりました。 プライベート セッションを有効または開始する前にプロバイダーを登録する必要がなくなりました。つまり、プロバイダーはプライベート 以外のセッション プロバイダーと同様に "事前に有効" されます。 個々のプロセスには、8 つのシステム全体のプライベート ロガーの制限があります。 プロセス間のシナリオでパフォーマンスを向上させるには、システム全体のプライベート ロガーを起動するときに、セッション API (ControlTrace、QueryTraceStartTraceStopTrace を含む) にフィルター処理を使用することをお勧めします。 すべてのセッション API に同じフィルターを渡す必要があることに注意してください。 フィルターの詳細については、「 EVENT_TRACE_PROPERTIES_V2」を参照してください。

イベント トレース セッションの開始の詳細については、「イベント トレース セッションの 構成と開始」を参照してください。

NT カーネル ロガー セッションの開始の詳細については、「NT カーネル ロガー セッション の構成と開始」を参照してください。

グローバル ロガー セッションの開始の詳細については、「グローバル ロガー セッションの 構成と開始」を参照してください。

AutoLogger セッションの開始の詳細については、「AutoLogger セッションの 構成と開始」を参照してください。

SystemTraceProvider セッションの構成と開始

AutoLogger セッションの構成と開始

イベント トレース セッションの構成と開始

NT カーネル ロガー セッションの構成と開始

EnableTraceEx2

ENABLE_TRACE_PARAMETERS

EVENT_TRACE_PROPERTIES

EVENT_TRACE_PROPERTIES_V2

EVENT_FILTER_DESCRIPTOR

PAYLOAD_FILTER_PREDICATE

TdhAggregatePayloadFilters

TdhCreatePayloadFilter

イベント トレース セッションの更新