POFXCALLBACKPLATFORMIDLEVETO 回调函数 (pep_x.h)

PlatformIdleVeto 例程递增或递减平台空闲状态否决代码的否决计数。

语法

POFXCALLBACKPLATFORMIDLEVETO Pofxcallbackplatformidleveto;

NTSTATUS Pofxcallbackplatformidleveto(
  [in] POHANDLE ProcessorHandle,
  [in] ULONG PlatformState,
  [in] ULONG VetoReason,
  [in] BOOLEAN Increment
)
{...}

参数

[in] ProcessorHandle

一个 POHANDLE 值,表示使用 电源管理框架(PoFx)注册处理器(作为设备)。 平台扩展插件(PEP)此前在 PEP_DPM_REGISTER_DEVICE 通知中从 PoFx 收到此句柄,通知 PEP 处理器已注册到 PoFx。

[in] PlatformState

平台空闲状态的索引,其否决计数正在递增或递减。 PEP 之前指定了受支持的平台空闲状态,以响应 PEP_NOTIFY_PPM_QUERY_PLATFORM_STATES 通知。 如果 PEP 指定的 N 平台空闲状态,则有效的平台空闲状态索引范围为 0 到 N–1。

[in] VetoReason

PEP 定义的否决代码,指示无法输入平台空闲状态的原因。 PEP 之前指定了响应 PEP_NOTIFY_PPM_QUERY_VETO_REASONS 通知时支持的否决原因数。 如果 PEP 指定的 M 否决原因,有效的否决代码范围为 1 到 M。

[in] Increment

是递增还是递减否决计数。 设置为 TRUE 以递增此否决原因的否决计数,或设置为 FALSE 以递减计数。

返回值

如果调用成功递增或递减否决计数,PlatformIdleVeto 将返回STATUS_SUCCESS。 可能的错误返回值包括以下状态代码。

返回值 描述
STATUS_NOT_IMPLEMENTED
指示此处理器未实现 PlatformIdleVeto 例程。

言论

此例程由 PoFx 实现,由 PEP 调用。 PEP_KERNEL_INFORMATION_STRUCT_V3 结构的 PlatformIdleVeto 成员是指向 PlatformIdleVeto 例程的指针。

PEP 处理 PEP_NOTIFY_PPM_QUERY_PLATFORM_STATES 通知后,每个平台空闲状态都以所有否决代码的否决计数为零开始。 PEP 可以递增否决代码的否决计数,以防止作系统将平台转换为此空闲状态。 当导致计数递增的否决原因不再生效时,PEP 会减少否决计数。 只有在所有否决代码的计数已减少到零之后,作系统才允许将平台转换为此空闲状态。

必须在 IRQL = PASSIVE_LEVEL 调用此例程。

要求

要求 价值
最低支持的客户端 从 Windows 10 开始支持。
目标平台 窗户
标头 pep_x.h (包括 Pep_x.h)
IRQL PASSIVE_LEVEL

另请参阅

PEP_KERNEL_INFORMATION_STRUCT_V3

PEP_NOTIFY_PPM_QUERY_PLATFORM_STATES

PEP_NOTIFY_PPM_QUERY_VETO_REASONS