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 已向 PoFx 注册处理器的 PEP_DPM_REGISTER_DEVICE 通知期间从 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 开始支持。
目标平台 Windows
标头 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