次の方法で共有


TRACE_PERIODIC_CAPTURE_STATE_INFO 構造体 (evntrace.h)

TraceQueryInformation および TraceSetInformation と共に使用して、定期的なキャプチャ状態に関連する情報を取得または設定します。

構文

typedef struct _TRACE_PERIODIC_CAPTURE_STATE_INFO {
  ULONG  CaptureStateFrequencyInSeconds;
  USHORT ProviderCount;
  USHORT Reserved;
} TRACE_PERIODIC_CAPTURE_STATE_INFO, *PTRACE_PERIODIC_CAPTURE_STATE_INFO;

メンバー

CaptureStateFrequencyInSeconds

状態キャプチャの頻度 (秒単位)。

ProviderCount

プロバイダーの数。

Reserved

将来利用するために予約されています。

注釈

定期的なキャプチャ状態は、キャプチャ状態通知をプロバイダーに定期的に送信できるようにする方法です。 これが有効になっている場合、通知は、以前に現在のセッションに対して有効にされたプロバイダー登録にのみ送信されます。 各プロバイダーは、通知に対する独自の応答 (存在する場合) を定義できます。 通知に応答してプロバイダーによってログに記録されたイベントは、手動で要求されたキャプチャ状態と同様に、プロバイダーが有効になっているすべての ETW セッションに送信されることに注意してください。

定期的なキャプチャ状態を使用するには:

  1. TRACE_PERIODIC_CAPTURE_STATE_INFO型のバッファー 割り当てます。 バッファーのサイズは、sizeof(TRACE_PERIODIC_CAPTURE_STATE_INFO) + (x * sizeof(GUID)) で、x は有効にするプロバイダーの数です。
  2. TRACE_INFO_CLASS列挙に対して TracePeriodicCaptureStateInfo を使用して TraceQueryInformation を呼び出します。 バッファーとそのサイズを TraceQueryInformation の TraceInformation パラメーターと InformationLength パラメーターとして渡 します
  3. CaptureStateFrequencyInSecondsを TRACE_PERIODIC_CAPTURE_STATE_INFO から Windows のバージョンでサポートされている最小頻度に設定します。 この値は将来変更される可能性があるため、ハード コーディングは推奨されません。 頻度が最小値を下回る場合、 TraceSetInformation の呼び出しは失敗します。
  4. TRACE_PERIODIC_CAPTURE_STATE_INFOから ProviderCount、渡されるプロバイダー GUID の数に設定します。
  5. TRACE_PERIODIC_CAPTURE_STATE_INFO構造体の終了後に、各プロバイダーの GUID を追加します。 これにより、最初の手順の (x * sizeof(GUID)) から割り当てられた余分な領域が使用されます。
  6. TRACE_INFO_CLASS列挙から TracePeriodicCaptureStateListInfo を使用して TraceSetInformation を呼び出します。
  7. 定期的なキャプチャ状態をオフにするには、 TraceSetInformation を再度呼び出し、 TracePeriodicCaptureStateListInfoTRACE_INFO_CLASSから呼び出し、 TraceInformation に NULL を、 InformationLength として 0 を指定します。

要件

   
Header evntrace.h