Share via


UpdateTraceA 函式 (evntrace.h)

UpdateTrace 函式會更新指定事件追蹤會話的屬性設定。

此函式已過時。 ControlTrace 函式會取代此函式。

語法

ULONG WMIAPI UpdateTraceA(
  TRACEHANDLE             TraceHandle,
  LPCSTR                  InstanceName,
  PEVENT_TRACE_PROPERTIES Properties
);

參數

TraceHandle

要更新的事件追蹤會話句柄,或 0。 如果 InstanceNameNULL,您必須指定非零 TraceHandle。 只有在 InstanceNameNULL 時,才會使用此參數。 StartTrace 會傳回句柄。

InstanceName

要更新的事件追蹤會話名稱,或 NULL。 如果 TraceHandle 為 0,您必須指定 InstanceName

若要指定NT核心記錄器會話,請將 InstanceName 設定為 KERNEL_LOGGER_NAME

Properties

初始化 EVENT_TRACE_PROPERTIES 結構的指標。

在輸入時,成員必須指定要更新之屬性的新值。 如需您可以更新哪些屬性的資訊,請參閱。

在輸出上,結構成員包含事件追蹤會話的更新設定和統計數據。

傳回值

如果函式成功,傳回值會ERROR_SUCCESS。

如果函式失敗,傳回值就是其中一個 系統錯誤碼。 下表包含一些常見的錯誤及其原因。

  • ERROR_BAD_LENGTH

    PropertiesWnode 成員的 BufferSize 成員會指定不正確的大小。

  • ERROR_INVALID_PARAMETER

    以下其中一項為正確:

    • 屬性NULL
    • InstanceNameTraceHandle 都是 NULL
    • InstanceNameNULL ,且 TraceHandle 不是有效的句柄。
    • PropertiesLogFileNameOffset 成員無效。
    • PropertiesLoggerNameOffset 成員無效。

    Windows Server 2003 和 Windows XP:Wnode 結構的 Guid 成員是 SystemTraceControlGuid,但 InstanceName 參數不會KERNEL_LOGGER_NAME。

  • ERROR_ACCESS_DENIED

    只有具有系統管理許可權、效能記錄使用者群組中的使用者,以及以LocalSystem、LocalService、NetworkService 執行的服務,才能控制事件追蹤會話。 若要授與受限制的使用者控制追蹤會話的能力,請將它們新增至 [效能記錄使用者] 群組。

    Windows XP 和 Windows 2000: 任何人都可以控制追蹤會話。

備註

事件追蹤控制器會呼叫此函式。

此函式已過時。 請改用 ControlTrace 搭配 ControlCode 設定為 EVENT_TRACE_CONTROL_UPDATE

在輸入時,成員必須指定要更新之屬性的新值。 您可以更新下列屬性。

  • EnableFlags:將此成員設定為 0 以停用所有核心提供者。 否則,您必須指定您要啟用或保持啟用的核心提供者。 僅適用於系統記錄器會話。

  • FlushTimer:如果您想要變更排清緩衝區之前等待的時間,請設定此成員。 如果這個成員是 0,則不會更新成員。

  • LogFileNameOffset:如果您想要切換到另一個記錄檔,請設定此成員。 如果這個成員是 0,則檔名不會更新。 如果位移不是零,而且您未變更記錄檔名稱,則函式會傳回錯誤。

  • LogFileMode:如果您想要開啟和關閉 EVENT_TRACE_REAL_TIME_MODE, 請設定此成員。 若要關閉即時時間,請將此成員設定為 0。 若要開啟即時運行時間,請將此成員設定為 EVENT_TRACE_REAL_TIME_MODE ,且會是使用目前模式的 OR。

  • MaximumBuffers:如果您想要變更 ETW 所使用的緩衝區數目上限,請設定此成員。 如果這個成員是 0,則不會更新成員。

針對私人記錄器會話,您只能更新 LogFileNameOffsetFlushTimer

如果您使用新初始化 的 EVENT_TRACE_PROPERTIES 結構,則您唯一需要指定的成員,除了您正在更新的成員之外,還有 Wnode.BufferSizeWnode.GuidWnode.Flags

如果您使用傳遞至 StartTrace 的屬性結構,請確定 LogFileNameOffset 成員為 0,除非您變更記錄檔名稱。

如果您呼叫 ControlTrace 函式來查詢目前的會話屬性,然後更新這些屬性以更新會話,請務必將 LogFileNameOffset 設定為 0 (,除非您變更記錄檔名稱) 並設定EVENT_TRACE_PROPERTIES。要WNODE_FLAG_TRACED_GUID的 Wnode.Flags

若要取得事件追蹤會話的屬性設定和會話統計數據,請呼叫 ControlTrace 函式。

範例

如需使用 UpdateTrace 的範例,請參閱 更新事件追蹤會話

注意

evntrace.h 標頭會將 UpdateTrace 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例

規格需求

需求
最低支援的用戶端 Windows 2000 專業版 [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限傳統型應用程式]
目標平台 Windows
標頭 evntrace.h
程式庫 Advapi32.lib
Dll Advapi32.dll

另請參閱

ControlTrace