pepfx.h) (PEP_PROCESSOR_IDLE_STATE_V2 结构
PEP_PROCESSOR_IDLE_STATE_V2结构描述平台扩展插件 (PEP) 支持的处理器空闲状态。
语法
typedef struct _PEP_PROCESSOR_IDLE_STATE_V2 {
union {
ULONG Ulong;
struct {
ULONG Interruptible : 1;
ULONG CacheCoherent : 1;
ULONG ThreadContextRetained : 1;
ULONG CStateType : 4;
ULONG WakesSpuriously : 1;
ULONG PlatformOnly : 1;
ULONG Autonomous : 1;
ULONG Reserved : 22;
};
};
ULONG Latency;
ULONG BreakEvenDuration;
} PEP_PROCESSOR_IDLE_STATE_V2, *PPEP_PROCESSOR_IDLE_STATE_V2;
成员
Ulong
将访问的位和状态字段标记为单个 32 位无符号整数值。
Interruptible
处于此空闲状态时,处理器是否可以响应中断。 如果处理器可以响应中断,请将此标志位设置为 1;如果无法响应,请将此标志位设置为 0。
CacheCoherent
处理器的本地缓存还是缓存在此处理器空闲状态的持续时间内保持一致。 如果缓存一致性保持在此空闲状态,请将此标志位设置为 1;否则,请将此标志位设置为 0。
ThreadContextRetained
线程上下文是否保留在此处理器空闲状态。 如果处理器硬件在整个空闲转换中保留线程上下文,请将此标志位设置为 1。 如果处理器使用多处理器停车协议退出空闲状态并将控制权返回给操作系统,则设置为 0。 有关此协议的详细信息,请参阅 ACPI 组件体系结构站点上标题为 ARM 平台的多处理器启动文档。
CStateType
处理器空闲状态的 C 状态类型。 如果此空闲状态与 ACPI 定义的 C 状态不对应,请将此位字段设置为零。 否则,请将此位字段设置为 C 状态编号。 也就是说,为 C1 设置 CStateType = 1
,为 C2 设置 CStateType = 2
,等等。 有关 C 状态的详细信息,请参阅 ACPI 5.0 规范的第 8.1 节“处理器电源状态”。
WakesSpuriously
处理器是否可以在此空闲状态下虚假唤醒。 如果保证处理器在收到设备中断、处理器间中断 (IPI) 或唤醒请求之前保持此空闲状态,请将此标志位设置为 0。 如果处理器可能出于其他原因而自动唤醒,则设置为 1。
PlatformOnly
是否只能在协调转换到平台范围的空闲状态过程中执行到此处理器空闲状态的转换。 如果处理器空闲状态转换只能在转换为平台空闲状态过程中执行,请将此标志位设置为 1。 否则,将 设置为 0。
Autonomous
是否由处理器硬件自主执行到此处理器空闲状态的协调转换。 如果这些转换是自主的,请将此标志位设置为 1;如果不是,请将此标志位设置为 0。 标志值为 1 表示可以在不发送 PEP_NOTIFY_PPM_TEST_IDLE_STATE、 PEP_NOTIFY_PPM_IDLE_PRE_EXECUTE或 PEP_NOTIFY_PPM_IDLE_COMPLETE 通知的情况下进入空闲状态。 仅当 CStateType 为非零时,才能将此标志设置为 1。
Reserved
保留供将来使用。 设置为零。
Latency
最坏情况下的延迟(以 100 纳秒为单位),处理器需要从此空闲状态唤醒以响应唤醒事件。
BreakEvenDuration
以 100 纳秒为单位指定的最小时间量,处理器必须处于此空闲状态才能转换到此状态。 Windows 电源管理框架 (PoFx) 使用此成员值作为提示,以避免将处理器切换到空闲状态,除非处理器可能保持此状态至少为 BreakEvenDuration 指定的时间量。
注解
此结构与 PEP_NOTIFY_PPM_QUERY_IDLE_STATES_V2 通知结合使用。 PEP_PPM_QUERY_IDLE_STATES_V2 结构的 IdleStates 成员是PEP_PROCESSOR_IDLE_STATE_V2结构数组中的第一个元素。
未命名的联合包含标志位和状态字段的集合,这些字段可以作为位字段单独访问,也可以一起作为 32 位无符号整数值进行访问。
未命名的结构包含作为单个位字段访问的标志位和状态字段。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 从 Windows 10 开始支持。 |
标头 | pepfx.h (包括 Pep_x.h) |