Поделиться через


Функция NdisGetCurrentProcessorCounts (ndis.h)

Функция NdisGetCurrentProcessorCounts возвращает счетчики для текущего процессора, который драйвер может использовать для определения использования ЦП для определенного интервала времени.

Синтаксис

void NdisGetCurrentProcessorCounts(
  [out] PULONG pIdleCount,
  [out] PULONG pKernelAndUser,
  [out] PULONG pIndex
);

Параметры

[out] pIdleCount

Указатель на указанную вызывающим переменную, в которой эта функция возвращает совокупное время простоя процессора, так как система была загружена.

[out] pKernelAndUser

Указатель на указанную вызывающим переменную, в которой эта функция возвращает совокупное время обработки (время в режиме ядра и время пользовательского режима) для процессора, так как система была загружена.

[out] pIndex

Указатель на указанную вызывающим переменную, в которой эта функция возвращает отсчитываемый от нуля индекс, определяющий процессор на компьютере.

Возвращаемое значение

Никакой

Замечания

NdisGetCurrentProcessorCounts возвращает количество простоя и использования ЦП, которые вызывающий объект может использовать для определения использования ЦП для текущего процессора. Значение использования ЦП указывает, как загружен ЦП с момента немедленного вызова этой функции. Если ЦП был сильно загружен, такой драйвер может изменить способ обработки определенных операций для повышения производительности драйвера.

Примечание оценка использования процессора сложна, и драйверы, как правило, не делают этого. Обратите внимание, что даже если вы имеете точную оценку использования процессора, существуют и другие факторы, которые необходимо учитывать, например, что вызывает нагрузку на ЦП, и насколько важно эта конкретная нагрузка может быть.
 
Драйвер может вызывать NdisGetCurrentProcessorCounts периодически в функции таймера. Драйвер может использовать следующий расчет, чтобы определить использование ЦП для нескольких интервалов таймера:
CpuUsage = 100-100*(Idle - Idle[n])/(KernelAndUser - KernelAndUser[n]);

где:

  • CpuUsage — это использование ЦП в процентах от общего интервала времени
  • Простой — это значение idleCount, возвращаемое последним вызовом NdisGetCurrentProcessorCounts
  • Idle[n] — это значение IdleCount, возвращаемое предыдущим вызовом, хранящимся в виде nth-элемента в массиве.
  • KernelandUser — это значение KernelAndUser, возвращаемое последним вызовом NdisGetCurrentProcessorCounts
  • KernelandUser[n] — это значение KernelandUser, возвращаемое предыдущим вызовом, хранящимся в виде nth-элемента в массиве.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Поддерживается для драйверов NDIS 6.0 и более поздних версий в Windows Vista и более поздних версиях. Поддерживается для драйверов NDIS 5.1 (см. NdisGetCurrentProcessorCounts (NDIS 5.1)) в Windows XP и более поздних версиях.
целевая платформа Всеобщий
заголовка ndis.h (include Ndis.h)
библиотеки Ndis.lib
IRQL <= DISPATCH_LEVEL
правил соответствия DDI Irql_Miscellaneous_Function(ndis)