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

标识对作业生效的通知限制的标志。 此成员是一个位域,用于确定是否使用其他结构成员。 此成员可以是以下值的任意组合。

含义
JOB_OBJECT_LIMIT_JOB_MEMORY_HIGH
0x00000200
作业具有已提交的内存通知限制。 JobHighMemoryLimit 成员包含详细信息。
JOB_OBJECT_LIMIT_JOB_MEMORY_LOW
0x00008000
作业具有提交的最小内存通知限制。 JobLowMemoryLimit 成员包含更多信息。
JOB_OBJECT_LIMIT_JOB_READ_BYTES
0x00010000
作业具有 I/O 读取字节数通知限制。 IoReadBytesLimit 成员包含详细信息。
JOB_OBJECT_LIMIT_JOB_WRITE_BYTES
0x00020000
作业具有 I/O 写入字节数通知限制。 IoWriteBytesLimit 成员包含详细信息。
JOB_OBJECT_LIMIT_JOB_TIME
0x00000004
作业具有用户模式执行时间通知限制。 PerJobUserTimeLimit 成员包含详细信息。
JOB_OBJECT_LIMIT_RATE_CONTROL
0x00040000
作业对作业超出其 CPU 速率控制限制的程度具有通知限制。 RateControlToleranceLimit 成员包含详细信息。
JOB_OBJECT_LIMIT_CPU_RATE_CONTROL
0x00040000
作业对作业超出其 CPU 速率控制限制的程度具有通知限制。 CpuRateControlToleranceLimit 成员包含详细信息。
JOB_OBJECT_LIMIT_IO_RATE_CONTROL
0x00080000
作业的通知限制是作业可以超出其 I/O 速率控制限制的程度。 IoRateControlToleranceLimit 成员包含详细信息。
JOB_OBJECT_LIMIT_NET_RATE_CONTROL
0x00100000
作业对作业超出其网络速率控制限制的程度具有通知限制。 NetRateControlToleranceLimit 成员包含详细信息。

ViolationLimitFlags

标识已超出的通知限制的标志。 此成员是一个位域,用于确定是否使用其他结构成员。 此成员可以是以下值的任意组合。

含义
JOB_OBJECT_LIMIT_JOB_READ_BYTES
0x00010000
已超出作业的 I/O 读取字节数通知限制。 IoReadBytes 成员包含详细信息。
JOB_OBJECT_LIMIT_JOB_WRITE_BYTES
0x00020000
已超出作业的 I/O 写入字节数通知限制。 IoWriteBytes 成员包含详细信息。
JOB_OBJECT_LIMIT_JOB_TIME
0x00000004
已超出作业的用户模式执行时间通知限制。 PerJobUserTime 成员包含详细信息。
JOB_OBJECT_LIMIT_JOB_MEMORY_HIGH
0x00000200
已超出作业的已提交最大内存通知限制。 JobMemory 成员包含更多信息。
JOB_OBJECT_LIMIT_JOB_MEMORY_LOW
0x00008000
作业的已提交内存已低于其最小通知限制。 JobMemory 成员包含更多信息。
JOB_OBJECT_LIMIT_RATE_CONTROL
0x00040000
已超出作业的 CPU 速率控制限制。 RateControlTolerance 成员包含更多信息。
JOB_OBJECT_LIMIT_CPU_RATE_CONTROL
0x00040000
已超出作业的 CPU 速率控制限制。 CpuRateControlTolerance 成员包含详细信息。
JOB_OBJECT_LIMIT_IO_RATE_CONTROL
0x00080000
已超出作业的 I/O 速率控制限制。 IoRateControlTolerance 成员包含详细信息。
JOB_OBJECT_LIMIT_NET_RATE_CONTROL
0x00100000
已超出作业的网络速率控制限制。 NetworkRateControlTolerance 成员包含详细信息。

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_HIGHJOB_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 速率控制限制的程度。 此成员可以是以下值之一。

含义
ToleranceLow
1
作业在容错间隔的 20% 内超出了其 CPU 速率控制限制。
ToleranceMedium
2
作业在容错间隔的 40% 内超出了其 CPU 速率控制限制。
ToleranceHigh
3
作业在容错间隔的 60% 内超出了其 CPU 速率控制限制。

DUMMYUNIONNAME2.CpuRateControlTolerance

如果 LimitFlags 成员指定 JOB_OBJECT_LIMIT_CPU_RATE_CONTROL,则此成员指定作业在发送通知时超出其 CPU 速率控制限制的程度。 此成员可以是以下值之一。

含义
ToleranceLow
1
作业在容错间隔的 20% 内超出了其 CPU 速率控制限制。
ToleranceMedium
2
作业在容错间隔的 40% 内超出了其 CPU 速率控制限制。
ToleranceHigh
3
作业在容错间隔的 60% 内超出了其 CPU 速率控制限制。

DUMMYUNIONNAME3

DUMMYUNIONNAME3.RateControlToleranceLimit

如果 LimitFlags 成员指定 JOB_OBJECT_LIMIT_RATE_CONTROL,则此成员包含为作业指定的 CPU 速率控制通知限制。

含义
ToleranceLow
1
作业在容错间隔的 20% 内可能会超出其 CPU 速率控制限制。
ToleranceMedium
2
作业在容错间隔的 40% 内可能会超出其 CPU 速率控制限制。
ToleranceHigh
3
作业在 60% 的容错间隔内可能会超出其 CPU 速率控制限制。

DUMMYUNIONNAME3.CpuRateControlToleranceLimit

如果 LimitFlags 参数指定 JOB_OBJECT_LIMIT_CPU_RATE_CONTROL,则此成员包含为作业指定的 CPU 速率控制通知限制。

含义
ToleranceLow
1
作业在容错间隔的 20% 内可能会超出其 CPU 速率控制限制。
ToleranceMedium
2
作业在容错间隔的 40% 内可能会超出其 CPU 速率控制限制。
ToleranceHigh
3
作业在 60% 的容错间隔内可能会超出其 CPU 速率控制限制。

JobLowMemoryLimit

如果 LimitFlags 成员指定 JOB_OBJECT_LIMIT_JOB_MEMORY_LOW,则此成员包含对作业有效的已提交最小内存限制。

IoRateControlTolerance

如果 LimitFlags 成员指定 JOB_OBJECT_LIMIT_IO_RATE_CONTROL,则此成员指定作业在发送通知时超出其 I/O 速率控制限制的范围。 此成员可以是以下值之一。

含义
ToleranceLow
1
作业在容错间隔的 20% 内超出了其 I/O 速率控制限制。
ToleranceMedium
2
作业在 40% 的容错间隔内超出了其 I/O 速率控制限制。
ToleranceHigh
3
作业在 60% 的容错间隔内超出了其 I/O 速率控制限制。

IoRateControlToleranceLimit

如果 LimitFlags 参数指定 JOB_OBJECT_LIMIT_IO_RATE_CONTROL,则此成员包含为作业指定的 I/O 速率控制通知限制。

含义
ToleranceLow
1
作业在 20% 的容错间隔内可能会超过其 I/O 速率控制限制。
ToleranceMedium
2
作业在 40% 的容错间隔内可能会超过其 I/O 速率控制限制。
ToleranceHigh
3
作业在 60% 的容错间隔内可能会超出其 I/O 速率控制限制。

NetRateControlTolerance

如果 LimitFlags 成员指定 JOB_OBJECT_LIMIT_NET_RATE_CONTROL,则此成员指定作业在发送通知时超出其网络速率控制限制的程度。 此成员可以是以下值之一。

含义
ToleranceLow
1
作业在容错间隔的 20% 内超出了其网络速率控制限制。
ToleranceMedium
2
作业在容错间隔的 40% 内超出了其网络速率控制限制。
ToleranceHigh
3
作业在容错间隔的 60% 内超出了其网络速率控制限制。

NetRateControlToleranceLimit

如果 LimitFlags 参数指定 JOB_OBJECT_LIMIT_NETWORK_RATE_CONTROL,则此成员包含为作业指定的网络速率控制通知限制。

含义
ToleranceLow
1
作业在容错间隔的 20% 内可能会超过其网络速率控制限制。
ToleranceMedium
2
作业在容错间隔的 40% 内可能会超出其网络速率控制限制。
ToleranceHigh
3
作业在容错间隔的 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

另请参阅

JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2

QueryInformationJobObject

SetInformationJobObject