CloseTrace 函式 (evntrace.h)

CloseTrace函式會關閉使用OpenTrace建立的追蹤處理會話。

語法

ETW_APP_DECLSPEC_DEPRECATED ULONG WMIAPI CloseTrace(
  [in] TRACEHANDLE TraceHandle
);

參數

[in] TraceHandle

要關閉之追蹤處理會話的控制碼。 OpenTrace函式會傳回這個控制碼。

傳回值

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

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

  • ERROR_INVALID_HANDLE

    以下其中一項為正確:

    • TraceHandle0
    • 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、EventCallbackEventClassCallback 回呼呼叫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

另請參閱

OpenTrace

ProcessTrace