Функция 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 | Любой уровень |