NdisGetCurrentProcessorCounts 函式會傳回驅動程式可用來判斷特定時間間隔 CPU 使用量的目前處理器計數。
語法
VOID NdisGetCurrentProcessorCounts(
[out] PULONG pIdleCount,
[out] PULONG pKernelAndUser,
[out] PULONG pIndex
);
參數
[out] pIdleCount
呼叫端提供的變數指標,在此變數中,此函式會傳回自系統開機後處理器的累計空閒時間。
[out] pKernelAndUser
呼叫端提供的變數指標,在此變數中,此函式會傳回自系統開機以來處理器的累積處理時間(內核模式時間加上使用者模式時間)。
[out] pIndex
呼叫端提供的變數指標,在此變數中,此函式會傳回以零起始的索引,以識別計算機內的處理器。
傳回值
沒有
言論
NdisGetCurrentProcessorCounts 傳回閑置和 CPU 使用量計數,呼叫端可用來判斷目前處理器的 CPU 使用量。 CPU 使用率值表示 CPU 的載入方式,因為此函式的呼叫正前一次。 如果 CPU 負載過重,這類驅動程式可以變更處理特定作業的方式,以改善驅動程式效能。
注意 估計處理器使用量很困難,驅動程式通常不會這麼做。 請注意,即使您有精確的處理器使用量估計值,您也需要考慮其他因素,例如造成 CPU 負載的原因,以及特定負載的重要性。
CpuUsage = 100-100*(Idle - Idle[n])/(KernelAndUser - KernelAndUser[n]);
哪裡:
- CpuUsage 是以總間隔時間百分比表示的CPU使用量
- Idle 是最近呼叫 NdisGetCurrentProcessorCounts 所傳回 IdleCount 值
- Idle[n] 是先前呼叫所傳回的 IdleCount 值,儲存為陣列中的第 n 個元素
- KernelandUser 是最近呼叫 NdisGetCurrentProcessorCounts 所傳回的 KernelAndUser 值
- KernelandUser[n] 是先前呼叫所傳回的 KernelandUser 值,儲存為陣列中的第 n 個元素
要求
| 要求 | 價值 |
|---|---|
| 最低支援的用戶端 | 支援 Windows Vista 和更新版本中的 NDIS 6.0 和更新版本驅動程式。 支援 Windows XP 和更新版本中的 NDIS 5.1 驅動程式(請參閱 NdisGetCurrentProcessorCounts (NDIS 5.1)。 |
| 目標平臺 | 普遍 |
| 標頭 | ndis.h (包括 Ndis.h) |
| 連結庫 | Ndis.lib |
| IRQL | <= DISPATCH_LEVEL |
| DDI 合規性規則 | Irql_Miscellaneous_Function(ndis) |