JOBOBJECT_LIMIT_VIOLATION_INFORMATION 结构 (winnt.h)

包含有关作业对象已超出的资源通知限制的信息。 此结构与 QueryInformationJobObject 函数和 JobObjectLimitViolationInformation 信息类一起使用。

语法

typedef struct _JOBOBJECT_LIMIT_VIOLATION_INFORMATION {
  DWORD                            LimitFlags;
  DWORD                            ViolationLimitFlags;
  DWORD64                          IoReadBytes;
  DWORD64                          IoReadBytesLimit;
  DWORD64                          IoWriteBytes;
  DWORD64                          IoWriteBytesLimit;
  LARGE_INTEGER                    PerJobUserTime;
  LARGE_INTEGER                    PerJobUserTimeLimit;
  DWORD64                          JobMemory;
  DWORD64                          JobMemoryLimit;
  JOBOBJECT_RATE_CONTROL_TOLERANCE RateControlTolerance;
  JOBOBJECT_RATE_CONTROL_TOLERANCE RateControlToleranceLimit;
} JOBOBJECT_LIMIT_VIOLATION_INFORMATION, *PJOBOBJECT_LIMIT_VIOLATION_INFORMATION;

成员

LimitFlags

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

含义
JOB_OBJECT_LIMIT_JOB_MEMORY
0x00000200
作业具有已提交的内存通知限制。 JobMemoryLimit 成员包含详细信息。
JOB_OBJECT_LIMIT_JOB_READ_BYTES
0x00010000
作业具有 I/O 读取字节数通知限制。 IoReadBytesLimit 成员包含详细信息。
JOB_OBJECT_LIMIT_JOB_TIME
0x00000004
作业具有用户模式执行时间通知限制。 PerJobUserTimeLimit 成员包含详细信息。
JOB_OBJECT_LIMIT_JOB_WRITE_BYTES
0x00020000
作业具有 I/O 写入字节数通知限制。 IoWriteBytesLimit 成员包含详细信息。
JOB_OBJECT_LIMIT_RATE_CONTROL
0x00040000
作业超出其 CPU 速率控制限制的程度。 RateControlToleranceLimit 成员包含详细信息。

ViolationLimitFlags

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

含义
JOB_OBJECT_LIMIT_READ_BYTES
0x00010000
已超出作业的 I/O 读取字节数通知限制。 IoReadBytes 成员包含详细信息。
JOB_OBJECT_LIMIT_WRITE_BYTES
0x00020000
已超出作业的 I/O 写入字节数通知限制。 IoWriteBytes 成员包含详细信息。
JOB_OBJECT_LIMIT_JOB_TIME
0x00000004
已超出作业的用户模式执行时间通知限制。 PerJobUserTime 成员包含详细信息。
JOB_OBJECT_LIMIT_JOB_MEMORY
0x00000200
已超出作业的已提交内存通知限制。 JobMemory 成员包含详细信息。
JOB_OBJECT_LIMIT_RATE_CONTROL
0x00040000
已超出作业的 CPU 速率控制限制。 RateControlTolerance 成员包含详细信息。

IoReadBytes

如果 ViolationLimitFlags 成员指定JOB_OBJECT_LIMIT_READ_BYTES,则此成员包含发送通知时作业中所有进程的 I/O 读取字节总数。

IoReadBytesLimit

如果 LimitFlags 成员指定JOB_OBJECT_LIMIT_READ_BYTES,则此成员包含对作业有效的 I/O 读取字节数通知限制。

IoWriteBytes

如果 ViolationLimitFlags 成员指定JOB_OBJECT_LIMIT_WRITE_BYTES,则此成员包含发送通知时作业中所有进程的 I/O 写入字节总数。

IoWriteBytesLimit

如果 LimitFlags 成员指定JOB_OBJECT_LIMIT_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,则此成员包含发送通知时作业中所有进程的已提交内存。

JobMemoryLimit

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

RateControlTolerance

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

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

RateControlToleranceLimit

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

含义
ToleranceIntervalShort
1
容差间隔为 10 秒。
ToleranceIntervalMedium
2
容差间隔为一分钟。
ToleranceIntervalLong
3
容差间隔为 10 分钟。

注解

当超出JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION结构中指定的任何通知限制时,系统会将JOB_OBJECT_MSG_NOTIFICATION_LIMIT消息发送到与作业关联的 I/O 完成端口。

若要检索有关超出的限制的信息,监视 I/O 完成端口的应用程序必须使用 JobObjectLimitViolationInformation 信息类和指向JOBOBJECT_LIMIT_VIOLATION_INFORMATION结构的指针调用 QueryInformationJobObject 函数。

要求

要求
最低受支持的客户端 Windows 8 [仅限桌面应用]
最低受支持的服务器 Windows Server 2012 [仅限桌面应用]
标头 winnt.h

另请参阅

QueryInformationJobObject

SetInformationJobObject