Поделиться через


структура 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
Задание имеет ограничение в байтах уведомлений о чтении операций ввода-вывода. Элемент IoReadBytesLimit содержит дополнительные сведения.
JOB_OBJECT_LIMIT_JOB_TIME
0x00000004
Задание имеет ограничение времени выполнения в пользовательском режиме. Элемент PerJobUserTimeLimit содержит дополнительные сведения.
JOB_OBJECT_LIMIT_JOB_WRITE_BYTES
0x00020000
Задание имеет ограничение в байтах уведомлений о записи ввода-вывода. Элемент IoWriteBytesLimit содержит дополнительные сведения.
JOB_OBJECT_LIMIT_RATE_CONTROL
0x00040000
Степень, в которой задание может превысить предел управления скоростью ЦП. Элемент RateControlToleranceLimit содержит дополнительные сведения.

ViolationLimitFlags

Флаги, определяющие превышенные ограничения уведомлений. Этот элемент представляет собой битовое поле, определяющее, используются ли другие элементы структуры. Этот элемент может быть любым сочетанием следующих значений.

Значение Значение
JOB_OBJECT_LIMIT_READ_BYTES
0x00010000
Превышено ограничение в байтах уведомлений о чтении операций ввода-вывода задания. Элемент IoReadBytes содержит дополнительные сведения.
JOB_OBJECT_LIMIT_WRITE_BYTES
0x00020000
Превышено предельное количество байтов уведомлений для операций ввода-вывода задания. Элемент IoWriteBytes содержит дополнительные сведения.
JOB_OBJECT_LIMIT_JOB_TIME
0x00000004
Превышено ограничение времени выполнения задания в пользовательском режиме. Элемент PerJobUserTime содержит дополнительные сведения.
JOB_OBJECT_LIMIT_JOB_MEMORY
0x00000200
Превышен предел уведомлений о зафиксированной памяти задания. Элемент JobMemory содержит дополнительные сведения.
JOB_OBJECT_LIMIT_RATE_CONTROL
0x00040000
Превышен предел управления скоростью ЦП задания. Элемент RateControlTolerance содержит дополнительные сведения.

IoReadBytes

Если член ViolationLimitFlags указывает JOB_OBJECT_LIMIT_READ_BYTES, он содержит общее количество байтов чтения ввода-вывода для всех процессов в задании на момент отправки уведомления.

IoReadBytesLimit

Если элемент LimitFlags указывает JOB_OBJECT_LIMIT_READ_BYTES, этот элемент содержит ограничение уведомлений о чтении операций ввода-вывода в байтах, которое действует для задания.

IoWriteBytes

Если член ViolationLimitFlags указывает JOB_OBJECT_LIMIT_WRITE_BYTES, он содержит общее количество байтов записи ввода-вывода для всех процессов в задании на момент отправки уведомления.

IoWriteBytesLimit

Если элемент LimitFlags указывает JOB_OBJECT_LIMIT_WRITE_BYTES, этот элемент содержит ограничение уведомлений о записи ввода-вывода в байтах, которое действует для задания.

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, этот элемент указывает, в какой степени задание превысило пределы управления скоростью ЦП на момент отправки уведомления. Этот элемент может иметь одно из следующих значений.

Значение Значение
ToleranceLow
1
Задание превысило ограничения по управлению скоростью ЦП на 20 % от допустимого интервала.
ToleranceMedium
2
Задание превысило пределы управления скоростью ЦП на 40 % от допустимого интервала.
ToleranceHigh
3
Задание превысило ограничения по управлению скоростью ЦП на 60 % от интервала допуска.

RateControlToleranceLimit

Если параметр LimitFlags указывает JOB_OBJECT_LIMIT_RATE_CONTROL, этот элемент содержит ограничения уведомлений для управления скоростью ЦП, указанные для задания.

Значение Значение
ToleranceIntervalShort
1
Интервал погрешности составляет 10 секунд.
ToleranceIntervalMedium
2
Интервал погрешности составляет одну минуту.
ToleranceIntervalLong
3
Интервал погрешности составляет 10 минут.

Комментарии

При превышении предела уведомлений, указанного в структуре JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION, система отправляет JOB_OBJECT_MSG_NOTIFICATION_LIMIT сообщение на порт завершения ввода-вывода, связанный с заданием.

Чтобы получить сведения о превышении ограничений, приложение, отслеживающее порт завершения ввода-вывода, должно вызвать функцию QueryInformationJobObject с информационным классом JobObjectLimitViolationInformation и указателем на структуру JOBOBJECT_LIMIT_VIOLATION_INFORMATION .

Требования

Требование Значение
Минимальная версия клиента Windows 8 [только классические приложения]
Минимальная версия сервера Windows Server 2012 [только классические приложения]
Верхняя часть winnt.h

См. также раздел

QueryInformationJobObject

SetInformationJobObject