winnt.h) (JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2结构
包含有关作业对象已超出的资源通知限制的扩展信息。 此结构与 JobObjectLimitViolationInformationInformation2 信息类的 QueryInformationJobObject 函数一起使用。
语法
typedef struct JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2 {
DWORD LimitFlags;
DWORD ViolationLimitFlags;
DWORD64 IoReadBytes;
DWORD64 IoReadBytesLimit;
DWORD64 IoWriteBytes;
DWORD64 IoWriteBytesLimit;
LARGE_INTEGER PerJobUserTime;
LARGE_INTEGER PerJobUserTimeLimit;
DWORD64 JobMemory;
union {
DWORD64 JobHighMemoryLimit;
DWORD64 JobMemoryLimit;
} DUMMYUNIONNAME;
union {
JOBOBJECT_RATE_CONTROL_TOLERANCE RateControlTolerance;
JOBOBJECT_RATE_CONTROL_TOLERANCE CpuRateControlTolerance;
} DUMMYUNIONNAME2;
union {
JOBOBJECT_RATE_CONTROL_TOLERANCE RateControlToleranceLimit;
JOBOBJECT_RATE_CONTROL_TOLERANCE CpuRateControlToleranceLimit;
} DUMMYUNIONNAME3;
DWORD64 JobLowMemoryLimit;
JOBOBJECT_RATE_CONTROL_TOLERANCE IoRateControlTolerance;
JOBOBJECT_RATE_CONTROL_TOLERANCE IoRateControlToleranceLimit;
JOBOBJECT_RATE_CONTROL_TOLERANCE NetRateControlTolerance;
JOBOBJECT_RATE_CONTROL_TOLERANCE NetRateControlToleranceLimit;
} JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2;
成员
LimitFlags
标识对作业生效的通知限制的标志。 此成员是一个位域,用于确定是否使用其他结构成员。 此成员可以是以下值的任意组合。
ViolationLimitFlags
标识已超出的通知限制的标志。 此成员是一个位域,用于确定是否使用其他结构成员。 此成员可以是以下值的任意组合。
IoReadBytes
如果 ViolationLimitFlags 成员指定 JOB_OBJECT_LIMIT_JOB_READ_BYTES,则此成员包含发送通知时作业中所有进程的 I/O 读取字节总数。
IoReadBytesLimit
如果 LimitFlags 成员指定 JOB_OBJECT_LIMIT_JOB_READ_BYTES,则此成员包含对作业生效的 I/O 读取字节通知限制。
IoWriteBytes
如果 ViolationLimitFlags 成员指定 JOB_OBJECT_LIMIT_JOB_WRITE_BYTES,则此成员包含发送通知时作业中所有进程的 I/O 写入字节总数。
IoWriteBytesLimit
如果 LimitFlags 成员指定 JOB_OBJECT_LIMIT_JOB_WRITE_BYTES,则此成员包含对作业生效的 I/O 写入字节通知限制。
PerJobUserTime
如果 ViolationLimitFlags 成员指定 JOB_OBJECT_LIMIT_JOB_TIME,则此成员包含发送通知时作业中所有进程的总用户模式执行时间。
PerJobUserTimeLimit
如果 LimitFlags 成员指定 JOB_OBJECT_LIMIT_JOB_TIME,则此成员包含对作业生效的用户模式执行通知限制。
JobMemory
如果 ViolationLimitFlags 成员指定 JOB_OBJECT_LIMIT_JOB_MEMORY_HIGH 或 JOB_OBJECT_LIMIT_JOB_MEMORY_LOW,则此成员包含发送通知时作业中所有进程的已提交内存。
DUMMYUNIONNAME
DUMMYUNIONNAME.JobHighMemoryLimit
如果 LimitFlags 成员指定 JOB_OBJECT_LIMIT_JOB_MEMORY_HIGH,则此成员包含对作业生效的已提交的最大内存限制。
DUMMYUNIONNAME.JobMemoryLimit
如果 LimitFlags 成员指定 JOB_OBJECT_LIMIT_JOB_MEMORY,则此成员包含对作业生效的已提交的最大内存限制。
DUMMYUNIONNAME2
DUMMYUNIONNAME2.RateControlTolerance
如果 LimitFlags 成员指定 JOB_OBJECT_LIMIT_RATE_CONTROL,则此成员指定作业在发送通知时超出其 CPU 速率控制限制的程度。 此成员可以是以下值之一。
值 | 含义 |
---|---|
|
作业在容错间隔的 20% 内超出了其 CPU 速率控制限制。 |
|
作业在容错间隔的 40% 内超出了其 CPU 速率控制限制。 |
|
作业在容错间隔的 60% 内超出了其 CPU 速率控制限制。 |
DUMMYUNIONNAME2.CpuRateControlTolerance
如果 LimitFlags 成员指定 JOB_OBJECT_LIMIT_CPU_RATE_CONTROL,则此成员指定作业在发送通知时超出其 CPU 速率控制限制的程度。 此成员可以是以下值之一。
值 | 含义 |
---|---|
|
作业在容错间隔的 20% 内超出了其 CPU 速率控制限制。 |
|
作业在容错间隔的 40% 内超出了其 CPU 速率控制限制。 |
|
作业在容错间隔的 60% 内超出了其 CPU 速率控制限制。 |
DUMMYUNIONNAME3
DUMMYUNIONNAME3.RateControlToleranceLimit
如果 LimitFlags 成员指定 JOB_OBJECT_LIMIT_RATE_CONTROL,则此成员包含为作业指定的 CPU 速率控制通知限制。
值 | 含义 |
---|---|
|
作业在容错间隔的 20% 内可能会超出其 CPU 速率控制限制。 |
|
作业在容错间隔的 40% 内可能会超出其 CPU 速率控制限制。 |
|
作业在 60% 的容错间隔内可能会超出其 CPU 速率控制限制。 |
DUMMYUNIONNAME3.CpuRateControlToleranceLimit
如果 LimitFlags 参数指定 JOB_OBJECT_LIMIT_CPU_RATE_CONTROL,则此成员包含为作业指定的 CPU 速率控制通知限制。
值 | 含义 |
---|---|
|
作业在容错间隔的 20% 内可能会超出其 CPU 速率控制限制。 |
|
作业在容错间隔的 40% 内可能会超出其 CPU 速率控制限制。 |
|
作业在 60% 的容错间隔内可能会超出其 CPU 速率控制限制。 |
JobLowMemoryLimit
如果 LimitFlags 成员指定 JOB_OBJECT_LIMIT_JOB_MEMORY_LOW,则此成员包含对作业有效的已提交最小内存限制。
IoRateControlTolerance
如果 LimitFlags 成员指定 JOB_OBJECT_LIMIT_IO_RATE_CONTROL,则此成员指定作业在发送通知时超出其 I/O 速率控制限制的范围。 此成员可以是以下值之一。
值 | 含义 |
---|---|
|
作业在容错间隔的 20% 内超出了其 I/O 速率控制限制。 |
|
作业在 40% 的容错间隔内超出了其 I/O 速率控制限制。 |
|
作业在 60% 的容错间隔内超出了其 I/O 速率控制限制。 |
IoRateControlToleranceLimit
如果 LimitFlags 参数指定 JOB_OBJECT_LIMIT_IO_RATE_CONTROL,则此成员包含为作业指定的 I/O 速率控制通知限制。
值 | 含义 |
---|---|
|
作业在 20% 的容错间隔内可能会超过其 I/O 速率控制限制。 |
|
作业在 40% 的容错间隔内可能会超过其 I/O 速率控制限制。 |
|
作业在 60% 的容错间隔内可能会超出其 I/O 速率控制限制。 |
NetRateControlTolerance
如果 LimitFlags 成员指定 JOB_OBJECT_LIMIT_NET_RATE_CONTROL,则此成员指定作业在发送通知时超出其网络速率控制限制的程度。 此成员可以是以下值之一。
值 | 含义 |
---|---|
|
作业在容错间隔的 20% 内超出了其网络速率控制限制。 |
|
作业在容错间隔的 40% 内超出了其网络速率控制限制。 |
|
作业在容错间隔的 60% 内超出了其网络速率控制限制。 |
NetRateControlToleranceLimit
如果 LimitFlags 参数指定 JOB_OBJECT_LIMIT_NETWORK_RATE_CONTROL,则此成员包含为作业指定的网络速率控制通知限制。
值 | 含义 |
---|---|
|
作业在容错间隔的 20% 内可能会超过其网络速率控制限制。 |
|
作业在容错间隔的 40% 内可能会超出其网络速率控制限制。 |
|
作业在容错间隔的 60% 内可能会超过其网络速率控制限制。 |
注解
超过 JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2 结构中指定的任何通知限制时,系统会将 JOB_OBJECT_MSG_NOTIFICATION_LIMIT 消息发送到与作业关联的 I/O 完成端口。
若要检索有关超出限制的信息,监视 I/O 完成端口的应用程序必须使用 JobObjectLimitViolationInformation2 信息类和指向JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2结构的指针调用 QueryInformationJobObject 函数。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 10 [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2016 [仅限桌面应用] |
标头 | winnt.h |