JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2 structure (winnt.h)
Contains extended information about resource notification limits that have been exceeded for a job object. This structure is used with the QueryInformationJobObject function with the JobObjectLimitViolationInformation2 information class.
Syntax
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;
Members
LimitFlags
Flags that identify the notification limits in effect for the job. This member is a bitfield that determines whether other structure members are used. This member can be any combination of the following values.
ViolationLimitFlags
Flags that identify the notification limits that have been exceeded. This member is a bitfield that determines whether other structure members are used. This member can be any combination of the following values.
IoReadBytes
If the ViolationLimitFlags member specifies JOB_OBJECT_LIMIT_JOB_READ_BYTES, this member contains the total I/O read bytes for all processes in the job at the time the notification was sent.
IoReadBytesLimit
If the LimitFlags member specifies JOB_OBJECT_LIMIT_JOB_READ_BYTES, this member contains the I/O read bytes notification limit in effect for the job.
IoWriteBytes
If the ViolationLimitFlags member specifies JOB_OBJECT_LIMIT_JOB_WRITE_BYTES, this member contains the total I/O write bytes for all processes in the job at the time the notification was sent.
IoWriteBytesLimit
If the LimitFlags member specifies JOB_OBJECT_LIMIT_JOB_WRITE_BYTES, this member contains the I/O write bytes notification limit in effect for the job.
PerJobUserTime
If the ViolationLimitFlags member specifies JOB_OBJECT_LIMIT_JOB_TIME, this member contains the total user-mode execution time for all processes in the job at the time the notification was sent.
PerJobUserTimeLimit
If the LimitFlags member specifies JOB_OBJECT_LIMIT_JOB_TIME, this member contains the user-mode execution notification limit in effect for the job.
JobMemory
If the ViolationLimitFlags member specifies JOB_OBJECT_LIMIT_JOB_MEMORY_HIGH or JOB_OBJECT_LIMIT_JOB_MEMORY_LOW, this member contains the committed memory for all processes in the job at the time the notification was sent.
DUMMYUNIONNAME
DUMMYUNIONNAME.JobHighMemoryLimit
If the LimitFlags member specifies JOB_OBJECT_LIMIT_JOB_MEMORY_HIGH, this member contains the committed maximum memory limit in effect for the job.
DUMMYUNIONNAME.JobMemoryLimit
If the LimitFlags member specifies JOB_OBJECT_LIMIT_JOB_MEMORY, this member contains the committed maximum memory limit in effect for the job.
DUMMYUNIONNAME2
DUMMYUNIONNAME2.RateControlTolerance
If the LimitFlags member specifies JOB_OBJECT_LIMIT_RATE_CONTROL, this member specifies the extent to which the job exceeded its CPU rate control limits at the time the notification was sent. This member can be one of the following values.
DUMMYUNIONNAME2.CpuRateControlTolerance
If the LimitFlags member specifies JOB_OBJECT_LIMIT_CPU_RATE_CONTROL, this member specifies the extent to which the job exceeded its CPU rate control limits at the time the notification was sent. This member can be one of the following values.
DUMMYUNIONNAME3
DUMMYUNIONNAME3.RateControlToleranceLimit
If the LimitFlags member specifies JOB_OBJECT_LIMIT_RATE_CONTROL, this member contains the CPU rate control notification limits specified for the job.
DUMMYUNIONNAME3.CpuRateControlToleranceLimit
If the LimitFlags parameter specifies JOB_OBJECT_LIMIT_CPU_RATE_CONTROL, this member contains the CPU rate control notification limits specified for the job.
JobLowMemoryLimit
If the LimitFlags member specifies JOB_OBJECT_LIMIT_JOB_MEMORY_LOW, this member contains the committed minimum memory limit in effect for the job.
IoRateControlTolerance
If the LimitFlags member specifies JOB_OBJECT_LIMIT_IO_RATE_CONTROL, this member specifies the extent to which the job exceeded its I/O rate control limits at the time the notification was sent. This member can be one of the following values.
IoRateControlToleranceLimit
If the LimitFlags parameter specifies JOB_OBJECT_LIMIT_IO_RATE_CONTROL, this member contains the I/O rate control notification limits specified for the job.
NetRateControlTolerance
If the LimitFlags member specifies JOB_OBJECT_LIMIT_NET_RATE_CONTROL, this member specifies the extent to which the job exceeded its network rate control limits at the time the notification was sent. This member can be one of the following values.
NetRateControlToleranceLimit
If the LimitFlags parameter specifies JOB_OBJECT_LIMIT_NETWORK_RATE_CONTROL, this member contains the network rate control notification limits specified for the job.
Remarks
When any notification limit specified in a JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2 structure is exceeded, the system sends a JOB_OBJECT_MSG_NOTIFICATION_LIMIT message to the I/O completion port associated with the job.
To retrieve information about the limits that were exceeded, the application monitoring the I/O completion port must call the QueryInformationJobObject function with the JobObjectLimitViolationInformation2 information class and a pointer to a JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2 structure.
Requirements
Requirement | Value |
---|---|
Minimum supported client | Windows 10 [desktop apps only] |
Minimum supported server | Windows Server 2016 [desktop apps only] |
Header | winnt.h |