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