Функция NdisGetCurrentProcessorCounts (ndis.h)
Функция NdisGetCurrentProcessorCounts возвращает счетчики для текущего процессора, который драйвер может использовать для определения использования ЦП для определенного интервала времени.
Синтаксис
void NdisGetCurrentProcessorCounts(
[out] PULONG pIdleCount,
[out] PULONG pKernelAndUser,
[out] PULONG pIndex
);
Параметры
[out] pIdleCount
Указатель на указанную вызывающим переменную, в которой эта функция возвращает совокупное время простоя процессора, так как система была загружена.
[out] pKernelAndUser
Указатель на указанную вызывающим переменную, в которой эта функция возвращает совокупное время обработки (время в режиме ядра и время пользовательского режима) для процессора, так как система была загружена.
[out] pIndex
Указатель на указанную вызывающим переменную, в которой эта функция возвращает отсчитываемый от нуля индекс, определяющий процессор на компьютере.
Возвращаемое значение
Никакой
Замечания
NdisGetCurrentProcessorCounts возвращает количество простоя и использования ЦП, которые вызывающий объект может использовать для определения использования ЦП для текущего процессора. Значение использования ЦП указывает, как загружен ЦП с момента немедленного вызова этой функции. Если ЦП был сильно загружен, такой драйвер может изменить способ обработки определенных операций для повышения производительности драйвера.
CpuUsage = 100-100*(Idle - Idle[n])/(KernelAndUser - KernelAndUser[n]);
где:
- CpuUsage — это использование ЦП в процентах от общего интервала времени
- Простой — это значение idleCount, возвращаемое последним вызовом NdisGetCurrentProcessorCounts
- Idle[n] — это значение IdleCount, возвращаемое предыдущим вызовом, хранящимся в виде nth-элемента в массиве.
- KernelandUser — это значение KernelAndUser, возвращаемое последним вызовом NdisGetCurrentProcessorCounts
- KernelandUser[n] — это значение KernelandUser, возвращаемое предыдущим вызовом, хранящимся в виде nth-элемента в массиве.