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_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。 可能的错误返回值包括以下状态代码。
返回值 | 描述 |
---|---|
|
指示此处理器未实现 PlatformIdleVeto 例程。 |
言论
此例程由 PoFx 实现,由 PEP 调用。 PEP_KERNEL_INFORMATION_STRUCT_V3 结构的 PlatformIdleVeto 成员是指向 PlatformIdleVeto 例程的指针。
PEP 处理 PEP_NOTIFY_PPM_QUERY_PLATFORM_STATES 通知后,每个平台空闲状态都以所有否决代码的否决计数为零开始。 PEP 可以递增否决代码的否决计数,以防止作系统将平台转换为此空闲状态。 当导致计数递增的否决原因不再生效时,PEP 会减少否决计数。 只有在所有否决代码的计数已减少到零之后,作系统才允许将平台转换为此空闲状态。
必须在 IRQL = PASSIVE_LEVEL 调用此例程。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | 从 Windows 10 开始支持。 |
目标平台 | 窗户 |
标头 | pepfx.h (include Pep_x.h) |
IRQL | PASSIVE_LEVEL |
另请参阅
PEP_KERNEL_INFORMATION_STRUCT_V3