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


Функция KeQueryActiveProcessorCountEx (ntddk.h)

Подпрограмма KeQueryActiveProcessorCountEx возвращает количество активных логических процессоров в указанной группе в многопроцессорной системе или во всей системе.

Синтаксис

ULONG KeQueryActiveProcessorCountEx(
  [in] USHORT GroupNumber
);

Параметры

[in] GroupNumber

Номер группы. Если многопроцессорная система содержит n групп, допустимые номера групп варьируются от 0 до n–1. Чтобы подсчитать все активные процессоры во всех группах в системе, задайте для этого параметра значение ALL_PROCESSOR_GROUPS, который определяется в файлах заголовков Winnt.h и Ntdef.h.

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

KeQueryActiveProcessorCountEx возвращает количество активных логических процессоров в группе. Если groupNumber не является допустимым номером группы и не ALL_PROCESSOR_GROUPS, возвращается ноль.

Комментарии

Активный логический процессор — это логический процессор, запущенный Windows и добавленный в многопроцессорную систему. Термин активный процессор применяется к процессору, который доступен для выполнения операций обработки, независимо от того, выполняет ли процессор в настоящее время обработку или находится в состоянии простоя. В некоторых системах количество активных процессоров может оставаться неизменным от запуска системы до завершения работы. В других системах Windows может динамически добавлять активные процессоры во время работы системы. Windows никогда не удаляет активные процессоры из системы. Таким образом, количество активных процессоров в многопроцессорной системе может увеличиваться между запуском и завершением работы системы, но это число никогда не уменьшается.

Связанная подпрограмма KeQueryActiveProcessorCount возвращает число активных процессоров, но эта подпрограмма, в отличие от KeQueryActiveProcessorCountEx, не принимает номер группы в качестве входного параметра. В Windows 7 и более поздних версиях операционной системы Windows KeQueryActiveProcessorCount возвращает число активных процессоров в группе 0, что совместимо с поведением этой процедуры в более ранних версиях Windows, которые не поддерживают группы. Это гарантирует, что существующие драйверы, вызывающие KeQueryActiveProcessorCount и не использующие функции, ориентированные на группы, будут правильно работать в многопроцессорных системах с двумя или более группами. Однако драйверы, использующие любые функции, ориентированные на группу в Windows 7 и более поздних версиях операционной системы Windows, должны вызывать KeQueryActiveProcessorCountEx вместо KeQueryActiveProcessorCount.

Пример кода, в котором используется KeQueryActiveProcessorCountEx, см. в разделе KeGetProcessorNumberFromIndex.

Требования

Требование Значение
Минимальная версия клиента Доступно в Windows 7 и более поздних версиях Windows.
Целевая платформа Универсальное
Верхняя часть ntddk.h (включая Ntddk.h, Wdm.h, Ntddk.h)
Библиотека NtosKrnl.lib
DLL NtosKrnl.exe
IRQL Любой уровень

См. также раздел

KeGetProcessorNumberFromIndex

KeQueryActiveProcessorCount