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 负载的原因以及特定负载的重要性。
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) |