共用方式為


檢查計數器資料狀態碼

PDH 函式的傳回值表示函式呼叫的成功或失敗,與計數器資料的狀態不同。 請務必檢查 PDH 結構中傳回之計數器值的 CStatus 成員,以確保傳回的資料在您使用它之前有效。 如果 CStatus 成員的值未指出成功,請勿使用資料。 以下是計數器的可能狀態值:

意義
PDH_CSTATUS_NO_MACHINE PDH 無法連線到計數器路徑中指定的電腦。 如果在加入計數器時傳回此狀態,則不會完全初始化計數器。 每次更新查詢時,PDH 都會重試連線。 建立連接時,一般資料收集會繼續。
PDH_CSTATUS_NO_OBJECT 找到指定的電腦,但在電腦上找到指定的效能物件。 如果在加入計數器時傳回此狀態,則查詢中不會包含指定的計數器。 如果作用中計數器傳回此狀態,該計數器的資料就無效。 每次要求資料時,PDH 都會嘗試取得此計數器資料。
PDH_CSTATUS_NO_INSTANCE 在 物件中找不到指定的實例。 如果在將計數器新增至查詢時傳回此狀態,計數器就會成功新增至查詢,但直到特定實例出現且傳回成功狀態之前,才會提供任何資料。
PDH_CSTATUS_NO_COUNTER 在指定的 物件中找不到指定的計數器。 如果在加入計數器時傳回此狀態,則計數器不會新增至查詢。 如果在資料收集之後傳回此狀態,該計數器的資料就無效。 每次要求資料時,PDH 都會嘗試取得此計數器資料。
PDH_CSTATUS_INVALID_DATA 已成功找到計數器,但傳回的資料無效。 如果計數器值小於先前的值,就會發生此錯誤。 (因為計數器值一律遞增,所以當計數器值達到最大值時,計數器值會變換為零。) 另一個可能的原因是系統計時器不正確。
PDH_CSTATUS_VALID_DATA 計數器的資料已成功傳回,但與上次讀取計數器時未變更。
PDH_CSTATUS_NEW_DATA 計數器的資料已成功傳回,而且與上次讀取計數器的時間不同。 即使產生的速率與最後一個樣本相同,仍可在速率計數器上傳回PDH_CSTATUS_NEW_DATA。 這是因為用於判斷此狀態值的原始資料值已變更,而不是計算的速率。
PDH_MORE_DATA 提供的緩衝區不夠大,無法儲存所有計數器資料。 配置較大的緩衝區,然後再次執行函式。
PDH_CSTATUS_ITEM_NOT_VALIDATED 計數器已新增至查詢,但尚未驗證或存取。 此計數器上沒有其他狀態資訊可用。
PDH_CSTATUS_NO_COUNTERNAME 查詢中未指定計數器名稱。
PDH_CSTATUS_NO_COUNTER 找不到指定的計數器名稱。
PDH_CSTATUS_NO_OBJECT 找不到指定的效能物件。
PDH_CALC_NEGATIVE_DENOMINATOR 計數器具有負分母值。
PDH_CALC_NEGATIVE_TIMEBASE 計數器具有負時間基底值。
PDH_CALC_NEGATIVE_VALUE 計數器具有負值。
PDH_CSTATUS_NO_COUNTERNAME 未指定計數器路徑。
PDH_CSTATUS_BAD_COUNTERNAME 計數器路徑格式不正確。