NdisGetCurrentProcessorCounts 函式 (ndis.h)

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 負載的原因,以及特定負載可能的重要性。
 
驅動程式可能會在定時器函式內定期呼叫 NdisGetCurrentProcessorCounts 。 驅動程式可以使用下列計算來判斷定時器間隔的 CPU 使用量:
CpuUsage = 100-100*(Idle - Idle[n])/(KernelAndUser - KernelAndUser[n]);

位置:

  • CpuUsage 是 CPU 使用量,以總間隔時間的百分比表示
  • Idle 是最近呼叫 NdisGetCurrentProcessorCounts 所傳回的 IdleCount
  • Idle[n] 是上一個呼叫所傳回的 IdleCount 值,儲存為陣列中的 nth 元素
  • KernelandUser 是最近呼叫 NdisGetCurrentProcessorCounts 所傳回的 KernelAndUser
  • KernelandUser[n] 是先前呼叫傳回的 KernelandUser 值,儲存為陣列中的第 n 個元素

規格需求

需求
最低支援的用戶端 在 Windows Vista 和更新版本中支援 NDIS 6.0 和更新版本的驅動程式。 支援 NDIS 5.1 驅動程式 (請參閱 Windows XP 和更新版本中的 NdisGetCurrentProcessorCounts (NDIS 5.1) ) 。
目標平台 Universal
標頭 ndis.h (包括 Ndis.h)
程式庫 Ndis.lib
IRQL <= DISPATCH_LEVEL
DDI 合規性規則 Irql_Miscellaneous_Function (ndis)