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


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

См. также

KeGetProcessorNumberFromIndex

KeQueryActiveProcessorCount