Export (0) Print
Expand All

JOBOBJECT_LIMIT_VIOLATION_INFORMATION structure

Contains information about resource notification limits that have been exceeded for a job object. This structure is used with the QueryInformationJobObject function with the JobObjectLimitViolationInformation information class.

Syntax


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_INTERVAL RateControlToleranceLimit;
} JOBOBJECT_LIMIT_VIOLATION_INFORMATION, *PJOBOBJECT_LIMIT_VIOLATION_INFORMATION;

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.

ValueMeaning
JOB_OBJECT_LIMIT_JOB_MEMORY
0x00000200

The job has a committed memory notification limit. The JobMemoryLimit member contains more information.

JOB_OBJECT_LIMIT_JOB_READ_BYTES
0x00010000

The job has an I/O read bytes notification limit. The IoReadBytesLimit member contains more information.

JOB_OBJECT_LIMIT_JOB_TIME
0x00000004

The job has a user-mode execution time notification limit. The PerJobUserTimeLimit member contains more information.

JOB_OBJECT_LIMIT_JOB_WRITE_BYTES
0x00020000

The job has an I/O write bytes notification limit. The IoWriteBytesLimit member contains more information.

JOB_OBJECT_LIMIT_RATE_CONTROL
0x00040000

The extent to which a job can exceed its CPU rate control limit. The RateControlToleranceLimit member contains more information.

 

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.

ValueMeaning
JOB_OBJECT_LIMIT_READ_BYTES
0x00010000

The job's I/O read bytes notification limit has been exceeded. The IoReadBytes member contains more information.

JOB_OBJECT_LIMIT_WRITE_BYTES
0x00020000

The job's I/O write bytes notification limit has been exceeded. The IoWriteBytes member contains more information.

JOB_OBJECT_LIMIT_JOB_TIME
0x00000004

The job's user-mode execution time notification limit has been exceeded. The PerJobUserTime member contains more information.

JOB_OBJECT_LIMIT_JOB_MEMORY
0x00000200

The job's committed memory notification limit has been exceeded. The JobMemory member contains more information.

JOB_OBJECT_LIMIT_RATE_CONTROL
0x00040000

The job's CPU rate control limit has been exceeded. The RateControlTolerance member contains more information.

 

IoReadBytes

If the ViolationLimitFlags member specifies JOB_OBJECT_LIMIT_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_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_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_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, this member contains the committed memory for all processes in the job at the time the notification was sent.

JobMemoryLimit

If the LimitFlags member specifies JOB_OBJECT_LIMIT_JOB_MEMORY, this member contains the committed memory limit in effect for the job.

RateControlTolerance

If the LimitFlags parameter 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.

ValueMeaning
ToleranceLow
1

The job exceeded its CPU rate control limits for 20% of the tolerance interval.

ToleranceMedium
2

The job exceeded its CPU rate control limits for 40% of the tolerance interval.

ToleranceHigh
3

The job exceeded its CPU rate control limits for 60% of the tolerance interval.

 

RateControlToleranceLimit

If the LimitFlags parameter specifies JOB_OBJECT_LIMIT_RATE_CONTROL, this member contains the CPU rate control notification limits specified for the job.

ValueMeaning
ToleranceIntervalShort
1

The tolerance interval is 10 seconds.

ToleranceIntervalMedium
2

The tolerance interval is one minute.

ToleranceIntervalLong
3

The tolerance interval is 10 minutes.

 

Remarks

When any notification limit specified in a JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION structure is exceeded, the system sends a JOB_OBJECT_MSG_NOTIFICATION_LIMIT message to the I/O completion port associated with the job. CPU rate control notifications are sent only if the JOB_OBJECT_CPU_RATE_CONTROL_NOTIFY option is in effect.

To retrieve information about the limits that were exceeded, the application monitoring the I/O completion port must call the QueryInformationJobObject function with the JobObjectLimitViolationInformation information class and a pointer to a JOBOBJECT_LIMIT_VIOLATION_INFORMATION structure.

Requirements

Minimum supported client

Windows 8 [desktop apps only]

Minimum supported server

Windows Server 2012 [desktop apps only]

Header

WinNT.h

See also

QueryInformationJobObject
SetInformationJobObject

 

 

Community Additions

ADD
Show:
© 2014 Microsoft