大部分的計數器都需要兩個樣本值,才能計算可顯示的值。 每個計數器的公式會決定計數器是否需要兩個樣本。 如需計數器及其公式的清單,請參閱 Windows Server 2003 部署套件的計數器類型一節。
收集效能數據 示範如何擷取範例數據。 取得範例之後,您通常會呼叫 PdhGetFormattedCounterValue 來計算可顯示的值。
如果您需要將計數器值放大或縮小以顯示,請先呼叫 PdhSetCounterScaleFactor 函式,再呼叫 PdhGetFormattedCounterValue。 計數器值可以從因子 -7 到 7 的範圍內,按十的冪縮放。
如果計數器路徑包含實例名稱的通配符,請呼叫 PdhGetFormattedCounterArray,以擷取所收集之每個實例的格式化計數器值數組。
您也可以使用 PdhCalculateCounterFromRawValue 和 PdhFormatFromRawValue 函式來計算可顯示的值。 若要使用這些函式,您必須在每次 PdhCollectQueryData 呼叫之後,擷取並儲存收集到的範例。 若要擷取範例,請呼叫 PdhGetRawCounterValue 或 PdhGetRawCounterArray 函式。 如需以時間為基礎的計數器值,請在 PdhFormatFromRawValue 之前呼叫 PdhGetCounterTimeBase,以擷取計數器的時間基底。
如果您使用原始數據執行計算,請在使用範例之前,先檢查 PDH_RAW_COUNTER 結構 CStatus 成員。 如果 CStatus 的值不是 PDH_CSTATUS_NEW_DATA 或 PDH_CSTATUS_VALID_DATA,則此範例無效。
顯示計數器的統計數據
如果您想要計算計數器的最小值、最大值和平均值,請呼叫 PdhComputeCounterStatistics 函式。 收集樣本時,請將 PDH_RAW_COUNTER 結構儲存在陣列中,並傳遞至 PdhComputeCounterStatistics。 函式會傳回 PDH_STATISTICS 結構中的統計值。
您也可以使用此函式來壓縮記錄檔。 例如,從記錄檔讀取十筆記錄、呼叫 PdhComputeCounterStatistics 來計算平均值,然後將平均值寫入輸出記錄檔。