POFXCALLBACKPLATFORMIDLEVETO 回调函数 (pepfx.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。 可能的错误返回值包括以下状态代码。
返回值 | 说明 |
---|---|
|
指示未为此处理器实现 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 |
标头 | pepfx.h (包括 Pep_x.h) |
IRQL | PASSIVE_LEVEL |
另请参阅
PEP_KERNEL_INFORMATION_STRUCT_V3