структура JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2 (winnt.h)
Содержит расширенные сведения об ограничениях уведомлений для объекта задания. Эта структура используется функциями SetInformationJobObject и QueryInformationJobObject с информационным классом JobObjectNotificationLimitInformation2 .
Синтаксис
typedef struct JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2 {
DWORD64 IoReadBytesLimit;
DWORD64 IoWriteBytesLimit;
LARGE_INTEGER PerJobUserTimeLimit;
union {
DWORD64 JobHighMemoryLimit;
DWORD64 JobMemoryLimit;
} DUMMYUNIONNAME;
union {
JOBOBJECT_RATE_CONTROL_TOLERANCE RateControlTolerance;
JOBOBJECT_RATE_CONTROL_TOLERANCE CpuRateControlTolerance;
} DUMMYUNIONNAME2;
union {
JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL RateControlToleranceInterval;
JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL CpuRateControlToleranceInterval;
} DUMMYUNIONNAME3;
DWORD LimitFlags;
JOBOBJECT_RATE_CONTROL_TOLERANCE IoRateControlTolerance;
DWORD64 JobLowMemoryLimit;
JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL IoRateControlToleranceInterval;
JOBOBJECT_RATE_CONTROL_TOLERANCE NetRateControlTolerance;
JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL NetRateControlToleranceInterval;
} JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2;
Члены
IoReadBytesLimit
Если элемент LimitFlags указывает JOB_OBJECT_LIMIT_JOB_READ_BYTES, этот член является ограничением уведомлений на общее количество байтов ввода-вывода, считанных всеми процессами в задании. В противном случае этот элемент игнорируется.
IoWriteBytesLimit
Если параметр LimitFlags указывает JOB_OBJECT_LIMIT_JOB_WRITE_BYTES, этот элемент является ограничением уведомлений для общего количества байтов ввода-вывода, записанных всеми процессами в задании. В противном случае этот элемент игнорируется.
PerJobUserTimeLimit
Если параметр LimitFlags указывает JOB_OBJECT_LIMIT_JOB_TIME, этот член является ограничением на уведомления для времени выполнения в пользовательском режиме задания в 100 наносекундных тактов. В противном случае этот элемент игнорируется.
Система добавляет к этому ограничению накопленный период выполнения процессов, связанных с заданием, при установке ограничения. Например, если процесс, связанный с заданием, уже накопил 5 минут времени выполнения в пользовательском режиме, а ограничение равно 1 минуте, фактически примененное ограничение составляет 6 минут.
Сведения о том, как указать PerJobUserTimeLimit в качестве принудительного ограничения и завершить процессы в заданиях, превышающих это ограничение, см. в разделе структура JOBOBJECT_BASIC_LIMIT_INFORMATION .
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, этот член указывает, в какой степени задание может превысить пределы управления скоростью ЦП в течение интервала, заданного элементом RateControlToleranceInterval . В противном случае этот элемент игнорируется.
Этот элемент может быть одним из следующих значений. Если значение не указано, используется ToleranceHigh .
DUMMYUNIONNAME2.CpuRateControlTolerance
Если параметр LimitFlags указывает JOB_OBJECT_LIMIT_CPU_RATE_CONTROL, этот член указывает, в какой степени задание может превысить пределы управления скоростью ЦП в течение интервала, заданного элементом CpuRateControlToleranceInterval . В противном случае этот элемент игнорируется.
Этот элемент может быть одним из следующих значений. Если значение не указано, используется ToleranceHigh .
DUMMYUNIONNAME3
DUMMYUNIONNAME3.RateControlToleranceInterval
Если параметр LimitFlags указывает JOB_OBJECT_LIMIT_RATE_CONTROL, этот член задает интервал, в течение которого выполняется мониторинг использования ЦП задания, чтобы определить, превысило ли задание пределы управления скоростью ЦП. В противном случае этот элемент игнорируется.
Этот элемент может быть одним из следующих значений. Если значение не указано, используется ToleranceIntervalShort .
DUMMYUNIONNAME3.CpuRateControlToleranceInterval
Если параметр LimitFlags указывает JOB_OBJECT_CPU_LIMIT_RATE_CONTROL, этот член задает интервал, в течение которого выполняется мониторинг использования ЦП задания, чтобы определить, превысило ли задание пределы управления скоростью ЦП. В противном случае этот элемент игнорируется.
Этот элемент может быть одним из следующих значений. Если значение не указано, используется ToleranceIntervalShort .
LimitFlags
Флаги ограничения, которые действуют. Этот элемент представляет собой битовое поле, определяющее, используются ли другие элементы структуры. Можно указать любое сочетание следующих значений.
Значение | Значение |
---|---|
|
Устанавливает пороговое значение уведомления для суммы частной зафиксированной памяти на уровне задания для всех процессов, связанных с заданием. Член JobHighMemoryLimit содержит дополнительные сведения. |
|
Устанавливает минимальный объем уведомлений для всей суммы частной зафиксированной памяти для всех процессов, связанных с заданием. Если это значение задано, отправляется уведомление, когда объем частной зафиксированной памяти падает ниже этого порогового значения. Член JobLowMemoryLimit содержит дополнительные сведения. |
|
Устанавливает ограничение байтов чтения ввода-вывода до суммы байтов ввода-вывода на уровне задания, считанных всеми процессами, связанными с заданием. Элемент IoReadBytesLimit содержит дополнительные сведения. |
|
Устанавливает ограничение байтов записи ввода-вывода в сумме байтов ввода-вывода на уровне задания, записанных всеми процессами, связанными с заданием. Элемент IoWriteBytesLimit содержит дополнительные сведения. |
|
Устанавливает ограничение времени выполнения в пользовательском режиме для задания. Элемент PerJobUserTimeLimit содержит дополнительные сведения. |
|
Устанавливает пороговое значение уведомлений для ограничений управления скоростью ЦП, установленных для задания. Элементы CpuRateControlTolerance и CpuRateControlToleranceInterval содержат дополнительные сведения.
Ограничения для управления скоростью ЦП устанавливаются путем вызова SetInformationJobObject с информационным классом JobObjectCpuRateInformationClass . |
|
Устанавливает пороговое значение уведомлений для ограничений управления скоростью ЦП, установленных для задания. Элементы RateControlTolerance и RateControlToleranceInterval содержат дополнительные сведения.
Ограничения для управления скоростью ЦП устанавливаются путем вызова SetInformationJobObject с информационным классом JobObjectCpuRateInformationClass . |
|
Устанавливает пороговое значение уведомлений для ограничений управления скоростью ввода-вывода, установленных для задания. Элементы IoRateControlTolerance и IoRateControlToleranceInterval содержат дополнительные сведения.
Ограничения управления скоростью ввода-вывода устанавливаются путем вызова Метода SetIoRateControlInformationJobObject. |
|
Устанавливает порог уведомлений для ограничений управления скоростью сети, установленных для задания. Элементы NetRateControlTolerance и NetRateControlToleranceInterval содержат дополнительные сведения.
Ограничения управления скоростью сети устанавливаются путем вызова SetInformationJobObject с информационным классом JobObjectNetRateInformationClass . |
IoRateControlTolerance
Если параметр LimitFlags указывает JOB_OBJECT_LIMIT_IO_RATE_CONTROL, этот элемент указывает степень, в которой задание может превысить свои ограничения скорости ввода-вывода в течение интервала, заданного элементом IoRateControlToleranceInterval . В противном случае этот элемент игнорируется.
Этот элемент может иметь одно из следующих значений. Если значение не указано, используется ToleranceHigh .
JobLowMemoryLimit
Если параметр LimitFlags указывает JOB_OBJECT_LIMIT_JOB_MEMORY_LOW, этот элемент является минимальным ограничением уведомлений для общего объема виртуальной памяти, который может быть зафиксирован всеми процессами в задании, в байтах. В противном случае этот элемент игнорируется.
IoRateControlToleranceInterval
Если параметр LimitFlags указывает JOB_OBJECT_IO_LIMIT_RATE_CONTROL, этот элемент задает интервал, в течение которого отслеживается использование операций ввода-вывода задания, чтобы определить, превысило ли задание пределы контроля скорости ввода-вывода. В противном случае этот элемент игнорируется.
Этот элемент может иметь одно из следующих значений. Если значение не указано, используется ToleranceIntervalShort .
NetRateControlTolerance
Если параметр LimitFlags указывает JOB_OBJECT_LIMIT_IO_RATE_CONTROL, этот элемент указывает, в какой степени задание может превысить пределы управления скоростью сети в течение интервала, заданного элементом NetRateControlToleranceInterval . В противном случае этот элемент игнорируется.
Этот элемент может иметь одно из следующих значений. Если значение не указано, используется ToleranceHigh .
NetRateControlToleranceInterval
Если параметр LimitFlags указывает JOB_OBJECT_NET_LIMIT_RATE_CONTROL, этот элемент задает интервал, в течение которого выполняется мониторинг использования сети задания, чтобы определить, превысило ли задание пределы контроля скорости сети. В противном случае этот элемент игнорируется.
Этот элемент может иметь одно из следующих значений. Если значение не указано, используется ToleranceIntervalShort .
Комментарии
При превышении лимита уведомлений система отправляет JOB_OBJECT_MSG_NOTIFICATION_LIMIT сообщение на порт завершения ввода-вывода, связанный с заданием. Процессы в задании продолжают выполняться и могут продолжать выделять память или передавать байты чтения или записи за пределами указанных ограничений.
Когда приложение, отслеживающее порт завершения ввода-вывода, получает сообщение JOB_OBJECT_MSG_NOTIFICATION_LIMIT , оно должно вызвать QueryInformationJobObject с информационным классом JobObjectLimitViolationInformation2 . Сведения о нарушении ограничений поступают в структуру JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2 , которая содержит сведения обо всех ограничениях уведомлений, которые были превышены во время выполнения запроса. Система не будет отправлять другое сообщение JOB_OBJECT_MSG_NOTIFICATION_LIMIT до вызова QueryInformationJobObject .
Ограничения управления скоростью ЦП для задания устанавливаются в JOBOBJECT_CPU_RATE_CONTROL_INFORMATION структуре. Значения управления скоростью ЦП в структуре JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2 указывают, насколько задание может превысить установленные ограничения для управления скоростью ЦП перед отправкой уведомления.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 10 [только классические приложения] |
Минимальная версия сервера | Windows Server 2016 [только классические приложения] |
Верхняя часть | winnt.h |
См. также раздел
JOBOBJECT_CPU_RATE_CONTROL_INFORMATION
JOBOBJECT_IO_RATE_CONTROL_INFORMATION
JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2