プライベート ロガー セッションの構成と開始
プライベート イベント トレース セッションは、イベント トレース プロバイダーと同じプロセスで実行されるユーザー モードのイベント トレース セッションです。プライベート セッションと有効にするプロバイダーはすべて同じプロセス内にある必要があります。 プライベート セッションを使用する利点は、プライベート セッションが同時に実行される最大 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_PARAMETERS、 EVENT_FILTER_DESCRIPTOR、 およびPAYLOAD_FILTER_PREDICATE 構造体」を参照してください。
Windows 10 バージョン 1703 以降では、低い特権のユーザーが開始したプロセスでプライベート ロガー セッションを開始できるようになりました。 プライベート セッションを有効または開始する前にプロバイダーを登録する必要がなくなりました。つまり、プロバイダーはプライベート 以外のセッション プロバイダーと同様に "事前に有効" されます。 個々のプロセスには、8 つのシステム全体のプライベート ロガーの制限があります。 プロセス間のシナリオでパフォーマンスを向上させるには、システム全体のプライベート ロガーを起動するときに、セッション API (ControlTrace、QueryTrace、StartTrace、StopTrace を含む) にフィルター処理を使用することをお勧めします。 すべてのセッション API に同じフィルターを渡す必要があることに注意してください。 フィルターの詳細については、「 EVENT_TRACE_PROPERTIES_V2」を参照してください。
イベント トレース セッションの開始の詳細については、「イベント トレース セッションの 構成と開始」を参照してください。
NT カーネル ロガー セッションの開始の詳細については、「NT カーネル ロガー セッション の構成と開始」を参照してください。
グローバル ロガー セッションの開始の詳細については、「グローバル ロガー セッションの 構成と開始」を参照してください。
AutoLogger セッションの開始の詳細については、「AutoLogger セッションの 構成と開始」を参照してください。
関連トピック