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 的 呼叫將會失敗。
- 將 providerCount 從 TRACE_PERIODIC_CAPTURE_STATE_INFO 設定為所傳遞的提供者 GUID 數目。
- 在 TRACE_PERIODIC_CAPTURE_STATE_INFO 結構的結尾之後,新增每個提供者的 GUID。 這會使用第一個步驟中從 (x * sizeof (GUID) ) 配置的額外空間。
- 從TRACE_INFO_CLASS列舉使用TracePeriodicCaptureStateListInfo呼叫TraceSetInformation。
- 若要關閉定期擷取狀態,請再次使用TracePeriodicCaptureStateListInfo從TRACE_INFO_CLASS呼叫TraceSetInformation、TraceInformation的 Null 和 0 作為InformationLength。
需求
標頭 | evntrace.h |