CloseTrace 函式 (evntrace.h)
CloseTrace函式會關閉使用OpenTrace建立的追蹤處理會話。
語法
ETW_APP_DECLSPEC_DEPRECATED ULONG WMIAPI CloseTrace(
[in] TRACEHANDLE TraceHandle
);
參數
[in] TraceHandle
要關閉之追蹤處理會話的控制碼。 OpenTrace函式會傳回這個控制碼。
傳回值
如果函式成功,傳回值會ERROR_SUCCESS。
如果函式失敗,傳回值就是其中一個 系統錯誤碼。 以下是一些常見的錯誤及其原因。
ERROR_INVALID_HANDLE
以下其中一項為正確:
- TraceHandle 為 0。
- TraceHandle是INVALID_PROCESSTRACE_HANDLE。
- TraceHandle 不是有效的控制碼。
ERROR_BUSY
在 Windows Vista 之前,在 ProcessTrace 函式完成之前,您無法關閉追蹤。
ERROR_CTX_CLOSE_PENDING
呼叫成功。 ProcessTrace函式會在處理其緩衝區中的所有即時事件之後停止, (它不會收到任何新的事件) 。
備註
取用者會呼叫此函式,以關閉 OpenTrace傳回的追蹤控制碼。
重要
請勿使用此函式來關閉 StartTrace傳回的追蹤控制碼。
如果您要處理來自記錄檔的事件,只有在 ProcessTrace 函式傳回之後,才會呼叫此函式。 不過,如果您要處理即時事件,您可以在 ProcessTrace 傳回之前呼叫此函式。 (停止追蹤處理的另一種方式是從 BufferCallback.) 傳回 FALSE
如果您在 ProcessTrace 傳回之前呼叫此函式, CloseTrace 函式會傳回ERROR_CTX_CLOSE_PENDING。 ERROR_CTX_CLOSE_PENDING程式碼表示 CloseTrace 函式呼叫成功; ProcessTrace 函式會在處理所有先前佇列的事件之後停止處理事件, (ProcessTrace 在您呼叫 CloseTrace 函式) 之後,將不會收到任何新的事件。 您可以從BufferCallback、EventCallback或EventClassCallback 回呼呼叫CloseTrace函式。
在 Windows Vista 之前: 您只能在 ProcessTrace 傳回之後呼叫 CloseTrace 。
範例
如需使用 CloseTrace的範例,請參閱 使用 TDH 擷取事件資料。
需求
最低支援的用戶端 | 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 |