設定和啟動 SystemTraceProvider 工作階段
SystemTraceProvider 是一個核心提供者,具有一組在 Windows 7、Windows Server 2008 R2 和以後版本中支援的預先定義的核心事件。 在 Windows 7 和 Windows Server 2008 R2 上,SystemTraceProvider 只能用於 NT 核心記錄器會話。
在 Windows 8、Windows Server 2012 和更新版本上,SystemTraceProvider 最多可以多任務處理 8 個記錄器會話。 記錄器工作階段的前兩個位置會保留給NT核心記錄器和迴圈核心內容記錄器 。
如需使用NT核心記錄器會話作為追蹤提供者的詳細資訊,請參閱 設定和啟動NT核心記錄器會話。
在 Windows 10 SDK 組建 20348 和更新版本上,SystemTraceProvider 可以透過個別的系統提供者進行設定,這些提供者可以透過 EnableTraceEx2 來控制,例如標準 Windows 事件提供者的事件追蹤等。 如需系統提供者、關鍵詞和對應舊版旗標和群組的完整清單,請參閱 系統提供者
啟用 SystemTraceProvider 工作階段
若要讓 SystemTraceProvider 啟動 NT Kernel Logger 以外的會話,請執行下列命令:
tracelog -start MySession -f c:\Kernel1.etl -eflag PROC_THREAD+LOADER+CSWITCH
若要以程序設計方式讓 SystemTraceProvider 啟動 NT 核心記錄器以外的會話,請使用下列步驟。
定義私人記錄器名稱。
#define PRIVATE_LOGGER_NAME L「某些私人追蹤會話」
在控制器上,設定下列 EVENT_TRACE_PROPERTIES 結構成員。
將日誌檔案模式設定為EVENT_TRACE_SYSTEM_LOGGER_MODE。
將 LoggerName 設定為私有日誌記錄器,而不是 KERNEL_LOGGER_NAME。
請確定 EVENT_TRACE_PROPERTIES 結構的 Wnode.Guid 成員未設定為 SystemTraceControlGuid。 您必須將新的 GUID 指派給這個成員。
在取用者上,將 EVENT_TRACE_LOGFILE 結構的 LoggerName 成員設定為這個私用記錄器。
注意
如果您想要讓非系統管理員或非 TCB 進程能夠代表第三方應用程式使用 SystemTraceProvider 啟動分析追蹤會話,則需要授與使用者配置檔許可權,然後將此使用者新增至會話 GUID(針對記錄器會話建立)和系統追蹤提供者 GUID 啟用系統追蹤提供者。 如需詳細資訊,請參閱 EventAccessControl 函式。
相關主題