事件追蹤的新功能
本節說明在每個版本中新增至 Windows 事件追蹤的新功能。
Windows 10 版本 1709
ETW 現在可以選擇性地追蹤會話中所有已啟用提供者的二進位檔。 追蹤會回溯套用至在通話前已啟用於會話的提供者,以及所有未來將啟用於會話的提供者。 您現在可以查詢作業系統所允許的目前設定的系統日誌記錄器的最大數量。 如需詳細資訊,請參閱 TraceProviderBinaryTracking 和 TraceMaxLoggersQueryTRACE_INFO_CLASS 列舉的值,以及 擷取其他事件追蹤數據。
ETW 現在可以根據事件名稱篩選事件。 您也可以判斷哪些事件會擷取其堆疊。 如需詳細資訊,請參閱 EVENT_FILTER_TYPE_EVENT_NAME、EVENT_FILTER_TYPE_STACKWALK_NAME 和 EVENT_FILTER_TYPE_STACKWALK_LEVEL_KW 值的 EVENT_FILTER_DESCRIPTOR 結構,以及相關聯的 EVENT_FILTER_EVENT_NAME 和 EVENT_FILTER_LEVEL_KW 結構。
Windows 10
TraceLogging 建置在 ETW 上,並提供簡化的方式來檢測原生、.NET 和 WinRT 開發人員的程式代碼。 TraceLogging 可讓您包含結構化數據與事件、相互關聯事件,而且不需要個別的檢測指令清單 XML 檔案。
提供者特性 新增為將更多數據附加至個別提供者註冊的方法。 它們可用於清單式或 TraceLogging 提供者。 這目前包含將提供者名稱和/或提供者群組新增至個別提供者註冊的支援。 提供者群組是一項新功能,可讓多個 ETW 提供者由其所屬的群組進行匯總控制。
定期擷取狀態是允許定期將擷取狀態通知傳送給提供者的方法。 啟用此功能時,通知只會傳送至先前啟用至目前會話的提供者註冊。 每個提供者都可以定義自己的通知回應(如果有的話)。 如需實作詳細數據,請參閱 TRACE_PERIODIC_CAPTURE_STATE_INFO。
Windows 8.1 和 Windows Server 2012 R2
下列功能已新增至 Windows 8.1 和 Windows Server 2012 R2 上的事件追蹤。
支援在使用 EnableTraceEx2 函式時,應用事件承載、範圍及堆疊漫遊篩選器的功能,以及在記錄器會話中根據特定條件篩選的 ENABLE_TRACE_PARAMETERS 和 EVENT_FILTER_DESCRIPTOR 結構。 如需詳細資訊,請參閱:
- TdhAggregatePayloadFilters
- TdhCleanupPayloadEventFilterDescriptor
- TdhCreatePayloadFilter
- TdhDeletePayloadFilter
此外,請參閱 EnableTraceEx2 函式和這些功能所使用的 ENABLE_TRACE_PARAMETERS 和 EVENT_FILTER_DESCRIPTOR 結構的廣泛修訂檔。
結構體定義了一個事件承載篩選述詞,用以描述如何在追蹤會話中對單一欄位進行篩選,這個會話是由新的 TdhCreatePayloadFilter 函式使用的。此外,還有一個新的結構體,供事件 ID 和堆疊行走篩選器使用。 如需詳細資訊,請參閱:
擷取提供者清單中事件相關信息的函式。 如需詳細資訊,請參閱:
結構,定義新 TdhEnumerateManifestProviderEvents 函式所使用的提供者指令清單中的事件數位。 如需詳細資訊,請參閱:
Windows 8 和 Windows Server 2012
下列功能已新增至 Windows 8 和 Windows Server 2012 上的事件追蹤。
在註冊對象上執行作業、提供事件承載剖析、提供追蹤提供者瀏覽、查詢事件追蹤會話設定,以及處理重新記錄的追蹤檔案的函式。 如需詳細資訊,請參閱:
- EventSetInformation
- TdhCloseDecodingHandle
- TdhGetDecodingParameter
- TdhGetWppProperty
- TdhGetWppMessage
- TdhLoadManifestFromBinary
- TdhOpenDecodingHandle
- TdhSetDecodingParameter
- TraceQueryInformation
介面提供給重新記錄器有關追蹤過程和事件被記錄時的資訊,存取特定事件的數據,以及存取允許操作事件追蹤記錄檔 (ETL) 檔案的重新記錄器功能。 如需詳細資訊,請參閱:
新函式和介面所使用的其他列舉。 如需詳細資訊,請參閱:
Windows 7 和 Windows Server 2008 R2
此版本中已新增下列功能:
- 提供者在清單中定義篩選條件的能力。 在 Windows Vista 中,控制器可以將篩選數據傳遞至提供者。 不過,指令清單中未定義篩選數據的版面配置,因此提供者必須使用其他方法,將篩選定義提供給控制器。 使用此版本,提供者可以在指令清單中定義篩選定義(請參閱 ProviderType 複雜類型的 篩選 屬性)。 然後控制器可以使用 TdhEnumerateProviderFilters 函式來判斷篩選定義。 使用篩選的提供者應該使用 EventWriteEx 函式來寫入事件。
- 能夠使用單一緩衝區來收集在多個處理器上產生的事件。 使用單一緩衝區可排除多處理器計算機上出現順序不一的事件。 如需詳細資訊,請參閱 EVENT_TRACE_NO_PER_PROCESSOR_BUFFERING 的記錄模式。 根據預設,ETW 會使用每個處理器緩衝區。
- 擷取事件的堆疊追蹤功能。 若要啟用核心事件的堆疊追蹤,請參閱 TraceSetInformation 函式。 若要啟用使用者事件的堆疊追蹤,請參閱 ENABLE_TRACE_PARAMETERS的 EnableProperty 成員 EVENT_ENABLE_PROPERTY_STACK_TRACE 旗標。
- 使用 EVENT_TRACE_PRIVATE_LOGGER_MODE 記錄模式時,可以指定 EVENT_TRACE_BUFFERING_MODE 或 EVENT_TRACE_FILE_MODE_NEWFILE 記錄模式(請參閱 記錄模式常數)。
- 同步啟用提供者的能力。 根據預設,提供者會以異步方式啟用。 若要同步啟用提供者,請設定 Timeout 參數於 EnableTraceEx2。
- 控制器要求提供者記錄其狀態的能力。 如需詳細資訊,請參閱 EVENT_CONTROL_CODE_CAPTURE_STATE 旗標,該旗標屬於 EnableTraceEx2的 ControlCode 參數。
- 取用者能夠使用 TdhFormatProperty 函式來格式化事件數據。
- 在不包含提供者的計算機上解碼已顯化事件的能力。 如需詳細資訊,請參閱 TdhLoadManifest 函式。
在此版本中已新增以下功能:
- EnableTraceEx2
- EventWriteEx
- TdhEnumerateProviderFilters
- TdhFormatProperty
- TdhLoadManifest
- TdhUnloadManifest
- TraceSetInformation
此版本中已新增下列結構:
- CLASSIC_EVENT_ID
- ENABLE_TRACE_PARAMETERS
- EVENT_EXTENDED_ITEM_STACK_TRACE32
- EVENT_EXTENDED_ITEM_STACK_TRACE64
- EVENT_FILTER_HEADER
- 提供者篩選器資訊
此版本中已新增下列列舉:
此版本中已新增下列MOF類別: