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

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

Синтаксис

NTSTATUS PsRegisterProcessAvailableCpusChangeNotification(
  [in]           PEPROCESS                             Process,
  [in]           PS_AVAILABLE_CPUS_CHANGE_CALLBACK     *Callback,
  [in, optional] PVOID                                 Context,
  [in, optional] PULONG64                              ObservedSequenceNumber,
  [out]          PS_AVAILABLE_CPUS_CHANGE_REGISTRATION *RegistrationHandle
);

Параметры

[in] Process

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

[in] Callback

Вызываемая функция обратного вызова. Этот параметр имеет тип PS_AVAILABLE_CPUS_CHANGE_CALLBACK.

[in, optional] Context

Указатель на параметр контекста, который будет передан функции обратного вызова.

[in, optional] ObservedSequenceNumber

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

[out] RegistrationHandle

Предоставляет указатель на буфер, который при успешном выполнении получает дескриптор регистрации обратного вызова (PS_AVAILABLE_CPUS_CHANGE_REGISTRATION).

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

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

Код возврата Описание
STATUS_SUCCESS Обратный вызов успешно зарегистрирован.
СТАТУС_НЕДОСТАТОЧНЫЕ_РЕСУРСЫ Обратный вызов не удалось зарегистрировать из-за нехватки системных ресурсов.

Замечания

Эта подпрограмма должна вызываться в PASSIVE_LEVEL.

Обратный вызов будет вызываться всякий раз, когда набор доступных ЦП для указанного процесса изменяется. Это может произойти из-за операций с горячей загрузкой ЦП, изменений сходства процессов или других системных событий.

Чтобы отменить регистрацию обратного вызова, вызовите PsUnregisterAvailableCpusChangeNotification с дескриптором регистрации, возвращенным этой функцией.

Если указан параметр ObservedSequenceNumber и текущий номер последовательности превышает его, обратный вызов будет вызываться сразу после регистрации.

Требования

Требование Ценность
Заголовок wdm.h
IRQL пассивный уровень

См. также

PsUnregisterAvailableCpusChangeNotification

PsRegisterSystemAvailableCpusChangeNotification

PS_AVAILABLE_CPUS_CHANGE_CALLBACK