PsRegisterProcessAvailableCpusChangeNotification 函数 (wdm.h)

PsRegisterProcessAvailableCpusChangeNotification 函数注册在进程可用的 CPU 发生更改时要调用的回调。

语法

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

(可选)提供指向调用方观察到的最新可用 CPU 序列号的指针。 如果自该观察以来序列号已提前,将立即进行回调。

[out] RegistrationHandle

提供指向缓冲区的指针,该缓冲区成功后接收回调注册的句柄(PS_AVAILABLE_CPUS_CHANGE_REGISTRATION)。

返回值

PsRegisterProcessAvailableCpusChangeNotification 返回以下 NTSTATUS 值之一:

返回代码 DESCRIPTION
STATUS_SUCCESS 已成功注册回调。
STATUS_INSUFFICIENT_RESOURCES 由于系统资源不足,无法注册回调。

注解

必须在PASSIVE_LEVEL调用此例程。

每当指定进程可用的 CPU 集发生更改时,都会调用回调。 这可能是由于 CPU 热插机作、进程相关性更改或其他系统事件导致的。

若要注销回调,请使用此函数返回的注册句柄调用 PsUnregisterAvailableCpusChangeNotification

如果提供了 ObservedSequenceNumber ,并且当前序列号超出该序列号,则会在注册时立即调用回调。

要求

要求 价值
标头 wdm.h
IRQL PASSIVE_LEVEL

另请参阅

PsUnregisterAvailableCpusChangeNotification

PsRegisterSystemAvailableCpusChangeNotification

PS_AVAILABLE_CPUS_CHANGE_CALLBACK