QueryTraceA 函式 (evntrace.h)
QueryTrace 函式會擷取指定事件追蹤會話的屬性設定和會話統計數據。
此函式已過時。 ControlTrace 函式會取代此函式。
語法
ULONG WMIAPI QueryTraceA(
CONTROLTRACE_ID TraceId,
LPCSTR InstanceName,
PEVENT_TRACE_PROPERTIES Properties
);
參數
TraceId
InstanceName
要查詢的事件追蹤會話名稱或 NULL。 如果 TraceHandle 為 0,您必須指定 InstanceName。
若要指定NT核心記錄器會話,請將 InstanceName 設定為 KERNEL_LOGGER_NAME。
Properties
初始化 EVENT_TRACE_PROPERTIES 結構的指標。
您只需要設定EVENT_TRACE_PROPERTIES結構的 Wnode.BufferSize 成員。 您可以使用最大會話名稱 (1024 個字元) 和記錄檔名稱上限 (1024 個字元,) 長度來計算緩衝區大小和不已知位移。
在輸出中,結構成員包含事件追蹤會話的屬性設定和會話統計數據。
從 Windows 10 版本 1703 開始: 為了在跨進程案例中取得更佳的效能,您現在可以將篩選傳遞至整個系統的私人記錄器 QueryTrace 。 您必須傳入新的 EVENT_TRACE_PROPERTIES_V2 結構,以包含篩選資訊。 如需詳細資訊,請參閱 設定和啟動私人記錄器會話 。
傳回值
如果函式成功,傳回值會ERROR_SUCCESS。
如果函式失敗,傳回值就是其中一個 系統錯誤碼。 以下是一些常見的錯誤及其原因。
ERROR_BAD_LENGTH
以下其中一項為正確:
- Properties 的 Wnode.BufferSize 成員指定了不正確的大小。
- 如果) ,屬性沒有足夠的空間配置來保存會話名稱和記錄檔名稱的複本 (。
ERROR_INVALID_PARAMETER
以下其中一項為正確:
- 屬性 為 NULL。
- InstanceName 和 TraceHandle 都是 NULL。
- InstanceName 為 NULL ,且 TraceHandle 不是有效的句柄。
ERROR_ACCESS_DENIED
只有以提升的系統管理許可權、效能記錄使用者群組中的使用者,以及以LocalSystem、LocalService、NetworkService身分執行的服務,才能查詢事件追蹤會話。 若要授與受限制的使用者查詢追蹤會話的能力,請將它們新增至 Performance Log Users 群組,或查看 EventAccessControl。
Windows XP 和 Windows 2000: 任何人都可以控制追蹤會話。
ERROR_WMI_INSTANCE_NOT_FOUND
指定的工作階段未執行。
備註
事件追蹤控制器會呼叫此函式。
此函式已過時。 請改用 ControlTrace 搭配 ControlCode 設定為 EVENT_TRACE_CONTROL_QUERY。
注意
evntrace.h 標頭會將 QueryTrace 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 專業版 [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows 2000 Server [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | evntrace.h |
程式庫 | Advapi32.lib |
Dll | Advapi32.dll |