設定和啟動 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 核心記錄器以外的會話,請執行下列命令:
tracelog -start MySession -f c:\Kernel1.etl -eflag PROC_THREAD+LOADER+CSWITCH
若要以程式設計方式讓 SystemTraceProvider 啟動 NT 核心記錄器以外的會話,請使用下列步驟。
定義私人記錄器名稱。
#define PRI加值稅E_LOGGER_NAME L「部分私人追蹤會話」
在控制器上,設定 EVENT_TRACE_PROPERTIES 結構的下列成員。
將 LogFileMode 設定為 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 函 式。
相關主題