StopTraceW 函式 (evntrace.h)

StopTrace函式會停止指定的事件追蹤會話。

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

語法

ULONG WMIAPI StopTraceW(
  TRACEHANDLE             TraceHandle,
  LPCWSTR                 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 結構的指標。

如果您使用新初始化的結構,則只需要設定結構的 Wnode.BufferSizeWnode.GuidLoggerNameOffsetLogFileNameOffset 成員。 您可以使用最大會話名稱 (1024 個字元) 和記錄檔名稱上限 (1024 個字元,) 長度來計算緩衝區大小和不已知位移。

從 Windows 10 1703 版開始:若要在跨進程案例中獲得更好的效能,您現在可以將篩選傳入至全系統私人記錄器的StopTrace。 您必須傳入新的 EVENT_TRACE_PROPERTIES_V2 結構,以包含篩選資訊。 如需詳細資訊,請參閱 設定和啟動私人記錄器會話

傳回值

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

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

  • ERROR_BAD_LENGTH

    以下其中一項為正確:

    • PropertiesWnode.BufferSize成員指定了不正確的大小。
    • 如果) ,屬性沒有足夠的空間配置來保存會話名稱和記錄檔名稱的複本 (。
  • ERROR_INVALID_PARAMETER

    以下其中一項為正確:

    • 屬性Null
    • InstanceNameTraceHandle 都是 Null
    • InstanceNameNull ,且 TraceHandle 不是有效的控制碼。
  • ERROR_ACCESS_DENIED 只有具有系統管理許可權的使用者、效能記錄使用者群組中的使用者,以及以 LocalSystem、LocalService、NetworkService 執行的服務可以控制事件追蹤會話。 若要授與受限制的使用者控制追蹤會話的能力,請將它們新增至效能記錄使用者群組。

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

備註

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

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

如果 LogFileMode 包含 EVENT_TRACE_FILE_MODE_PREALLOCATEStartTrace 會將記錄檔延伸至 MaximumFileSize 位元組。 檔案會在記錄期間佔用整個空間,以用於迴圈和循序記錄。 當您停止記錄器時,記錄檔會縮減為所需的大小。

請勿從 DllMain (呼叫 StopTrace ,可能會導致死結) 。

注意

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

需求

   
最低支援的用戶端 Windows 2000 專業版 [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows 2000 Server [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 evntrace.h
程式庫 Windows 8.1 和 Windows Server 2012 R2 上的 Sechost.lib;Windows 8、Windows Server 2012、Windows 7、Windows Server 2008 R2、Windows Server 2008、Windows Vista 和 Windows XP 上的 Advapi32.lib
Dll Windows 8.1 和 Windows Server 2012 R2 上的 Sechost.dll;windows 8、Windows Server 2012、Windows 7、Windows Server 2008 R2、Windows Server 2008、Windows Vista 和 Windows XP 上的 Advapi32.dll

另請參閱

ControlTrace

StartTrace