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 值,存储为数组中的第 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)