TRACE_PERIODIC_CAPTURE_STATE_INFO結構 (evntrace.h)

TraceQueryInformationTraceSetInformation 搭配使用,以取得或設定與定期擷取狀態相關的資訊。

語法

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。 傳遞緩衝區及其大小做為TraceQueryInformationTraceInformationInformationLength參數。
  3. CaptureStateFrequencyInSecondsTRACE_PERIODIC_CAPTURE_STATE_INFO 設定為 Windows 版本所支援的最低頻率。 此值未來可能會變更,因此不建議進行硬式編碼。 如果頻率低於最小值, 對 TraceSetInformation 的 呼叫將會失敗。
  4. providerCountTRACE_PERIODIC_CAPTURE_STATE_INFO 設定為要傳遞的提供者 GUID 數目。
  5. TRACE_PERIODIC_CAPTURE_STATE_INFO 結構結尾之後,新增每個提供者的 GUID。 這會使用第一個步驟中從 (x * sizeof (GUID) ) 配置的額外空間。
  6. TRACE_INFO_CLASS列舉中使用TracePeriodicCaptureStateListInfo呼叫TraceSetInformation
  7. 若要關閉定期擷取狀態,請使用TracePeriodicCaptureStateListInfoTRACE_INFO_CLASS再次呼叫TraceSetInformationTraceInformation的 Null 和 0 作為InformationLength

規格需求

   
標頭 evntrace.h