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


Функция PsQueryProcessAvailableCpus (wdm.h)

Функция PsQueryProcessAvailableCpus запрашивает набор ЦП, доступных для данного процесса для запуска.

Синтаксис

NTSTATUS PsQueryProcessAvailableCpus(
  [in]           PEPROCESS     Process,
  [in, out]      PKAFFINITY_EX Affinity,
  [in, optional] PULONG64      ObservedSequenceNumber,
  [out]          PULONG64      SequenceNumber
);

Параметры

[in] Process

Указатель на процесс (PEPROCESS).

[in, out] Affinity

Указатель на расширенный объект сходства (PKAFFINITY_EX), который получит набор доступных ЦП для процесса.

[in, optional] ObservedSequenceNumber

При необходимости предоставляет указатель на последний номер последовательности, наблюдаемый вызывающим путем предыдущего вызова этой подпрограммы. Если этот номер последовательности соответствует текущему номеру последовательности, подпрограмма возвращает STATUS_NO_WORK_DONE и не записывается в буфер сходства.

[out] SequenceNumber

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

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

PsQueryProcessAvailableCpus возвращает одно из следующих значений NTSTATUS:

Код возврата Описание
STATUS_SUCCESS Запрос выполнен успешно.
СТАТУС_НЕДЕЙСТВИТЕЛЬНЫЙ_ПАРАМЕТР Любой из обязательных буферов имеет значение NULL.
STATUS_NO_WORK_DONE Заданный номер последовательности соответствует текущему номеру последовательности, и запрос не выполнен.
STATUS_BUFFER_TOO_SMALL Заданный буфер сходства слишком мал.

Замечания

Эту подпрограмму можно вызвать в IRQL из PASSIVE_LEVEL в DISPATCH_LEVEL.

Буфер сходства должен быть достаточно большим, чтобы вместить число активных групп обработчиков. Используйте KeQueryActiveGroupCount для определения требуемого размера.

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

Требования

Требование Ценность
Заголовок wdm.h
IRQL PASSIVE_LEVEL to DISPATCH_LEVEL

См. также

PsQueryProcessAvailableCpusCount

PsQuerySystemAvailableCpus

KeQueryActiveGroupCount