Функция 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 (include Ntddk.h, Wdm.h, Ntddk.h) |
библиотеки | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | Любой уровень |