設定和啟動 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 函 式。

 

設定和啟動私人記錄器會話

設定和啟動自動記錄器會話

設定和啟動事件追蹤會話

設定和啟動 NT 核心記錄器會話

系統提供者

更新事件追蹤會話