winnt.h) (JOBOBJECT_CPU_RATE_CONTROL_INFORMATION 结构
包含作业对象的 CPU 速率控制信息。 此结构由 SetInformationJobObject 和 QueryInformationJobObject 函数与 JobObjectCpuRateControlInformation 信息类一起使用。
语法
typedef struct _JOBOBJECT_CPU_RATE_CONTROL_INFORMATION {
DWORD ControlFlags;
union {
DWORD CpuRate;
DWORD Weight;
struct {
WORD MinRate;
WORD MaxRate;
} DUMMYSTRUCTNAME;
} DUMMYUNIONNAME;
} JOBOBJECT_CPU_RATE_CONTROL_INFORMATION, *PJOBOBJECT_CPU_RATE_CONTROL_INFORMATION;
成员
ControlFlags
CPU 速率控制的计划策略。 此成员可以是以下值之一。
DUMMYUNIONNAME
DUMMYUNIONNAME.CpuRate
指定作业对象中的线程在每个计划间隔期间可以使用的处理器周期部分,作为每 10,000 个周期的周期数。 如果 ControlFlags 成员指定 JOB_OBJECT_CPU_RATE_WEIGHT_BASED 或 JOB_OBJECT_CPU_RATE_CONTROL_MIN_MAX_RATE,则不使用此成员。
将 CpuRate 设置为百分比乘以 100。 例如,若要让作业使用 20% 的 CPU,请将 CpuRate 设置为 20 乘以 100 或 2,000。
不要将 CpuRate 设置为 0。 如果 CpuRate 为 0, 则 SetInformationJobObject 返回 INVALID_ARGS。
DUMMYUNIONNAME.Weight
如果 ControlFlags 成员指定 JOB_OBJECT_CPU_RATE_WEIGHT_BASED,则此成员指定作业对象的计划权重,该对象确定相对于处理器上其他工作负荷分配给作业的处理器时间的份额。
此成员可以是 1 到 9 的值,其中 1 是最小的共享,9 是最大的共享。 默认值为 5,应用于大多数工作负荷。
如果 ControlFlags 成员指定 JOB_OBJECT_CPU_RATE_CONTROL_MIN_MAX_RATE,则不使用此成员。
DUMMYUNIONNAME.DUMMYSTRUCTNAME
DUMMYUNIONNAME.DUMMYSTRUCTNAME.MinRate
指定每个计划间隔期间作业对象中的线程可以保留的处理器周期的最小部分。 将此速率指定为百分比乘以 100。 例如,若要将最小速率设置为 50%,请指定 50 乘以 100 或 5,000。
若要使最小速率正常工作,系统中所有作业对象的最小速率之和不能超过 10,000,这相当于 100%。
DUMMYUNIONNAME.DUMMYSTRUCTNAME.MaxRate
指定每个计划间隔期间作业对象中的线程可以使用的最大处理器周期部分。 将此速率指定为百分比乘以 100。 例如,若要将最大速率设置为 50%,请指定 50 乘以 100 或 5,000。
在作业达到计划间隔的此限制后,在下一个计划间隔之前,与作业关联的线程都不能运行。
注解
可以在嵌套作业层次结构中为多个作业设置 CPU 速率控制。 为作业对象设置 CPU 速率控制时,这些设置将应用于层次结构中的作业及其子作业。 为嵌套层次结构中的作业设置 CPU 速率控制时,系统会根据作业的直接父作业的 CPU 速率控制计算相应的配额。 换句话说,为作业设置的速率表示分配给其父作业的 CPU 速率的一部分。 如果作业对象没有在其父作业链中打开 CPU 速率控制的父对象,则作业的速率控制表示整个系统的 CPU 部分。
如果动态公平共享计划 (DFSS) 有效,则远程桌面 服务 (以前终端服务) 下运行的应用程序中的作业对象无法使用 CPU 速率控制。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 8 [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2012 [仅限桌面应用] |
标头 | winnt.h |