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


структура JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2 (winnt.h)

Содержит расширенные сведения об ограничениях уведомлений о ресурсах, которые были превышены для объекта задания. Эта структура используется с функцией QueryInformationJobObject с информационным классом JobObjectLimitViolationInformation2 .

Синтаксис

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

ViolationLimitFlags

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

Значение Значение
JOB_OBJECT_LIMIT_JOB_READ_BYTES
0x00010000
Превышен предельный объем уведомлений о байтах чтения операций ввода-вывода задания. Элемент IoReadBytes содержит дополнительные сведения.
JOB_OBJECT_LIMIT_JOB_WRITE_BYTES
0x00020000
Превышен предельный объем уведомлений о записи в байтах ввода-вывода задания. Элемент 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
Превышен предел управления скоростью ЦП задания. Элемент RateControlTolerance содержит дополнительные сведения.
JOB_OBJECT_LIMIT_CPU_RATE_CONTROL
0x00040000
Превышен предел управления скоростью ЦП задания. Член CpuRateControlTolerance содержит дополнительные сведения.
JOB_OBJECT_LIMIT_IO_RATE_CONTROL
0x00080000
Превышен предел контроля скорости ввода-вывода задания. Член IoRateControlTolerance содержит дополнительные сведения.
JOB_OBJECT_LIMIT_NET_RATE_CONTROL
0x00100000
Превышен предел управления скоростью сети задания. Член NetworkRateControlTolerance содержит дополнительные сведения.

IoReadBytes

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

IoReadBytesLimit

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

IoWriteBytes

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

IoWriteBytesLimit

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

PerJobUserTime

Если элемент ViolationLimitFlags указывает JOB_OBJECT_LIMIT_JOB_TIME, он содержит общее время выполнения в пользовательском режиме для всех процессов в задании на момент отправки уведомления.

PerJobUserTimeLimit

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

JobMemory

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

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

DUMMYUNIONNAME2.CpuRateControlTolerance

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

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

DUMMYUNIONNAME3

DUMMYUNIONNAME3.RateControlToleranceLimit

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

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

DUMMYUNIONNAME3.CpuRateControlToleranceLimit

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

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

JobLowMemoryLimit

Если элемент LimitFlags указывает JOB_OBJECT_LIMIT_JOB_MEMORY_LOW, он содержит зафиксированный минимальный объем памяти, который действует для задания.

IoRateControlTolerance

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

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

IoRateControlToleranceLimit

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

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

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 сообщение на порт завершения ввода-вывода, связанный с заданием.

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

Требования

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

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

JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2

QueryInformationJobObject

SetInformationJobObject