структура JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION (winnt.h)
Содержит сведения об ограничениях уведомлений для объекта задания. Эта структура используется функциями SetInformationJobObject и QueryInformationJobObject с информационным классом JobObjectNotificationLimitInformation .
Синтаксис
typedef struct _JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION {
DWORD64 IoReadBytesLimit;
DWORD64 IoWriteBytesLimit;
LARGE_INTEGER PerJobUserTimeLimit;
DWORD64 JobMemoryLimit;
JOBOBJECT_RATE_CONTROL_TOLERANCE RateControlTolerance;
JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL RateControlToleranceInterval;
DWORD LimitFlags;
} JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION, *PJOBOBJECT_NOTIFICATION_LIMIT_INFORMATION;
Члены
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 .
JobMemoryLimit
Если параметр LimitFlags указывает JOB_OBJECT_LIMIT_JOB_MEMORY, этот элемент является ограничением уведомлений для общего объема виртуальной памяти, который может быть зафиксирован всеми процессами в задании в байтах. В противном случае этот элемент игнорируется.
Сведения о том, как указать JobMemoryLimit в качестве принудительного ограничения и предотвратить продолжение фиксации памяти процессами в заданиях, превышающими это ограничение, см. в JOBOBJECT_EXTENDED_LIMIT_INFORMATION структуре .
RateControlTolerance
Если параметр LimitFlags указывает JOB_OBJECT_LIMIT_RATE_CONTROL, этот член указывает, в какой степени задание может превысить пределы управления скоростью ЦП в течение интервала, заданного элементом RateControlToleranceInterval . В противном случае этот элемент игнорируется.
Этот элемент может быть одним из следующих значений. Если значение не указано, используется ToleranceHigh .
RateControlToleranceInterval
Если параметр LimitFlags указывает JOB_OBJECT_LIMIT_RATE_CONTROL, этот член задает интервал, в течение которого выполняется мониторинг использования ЦП задания, чтобы определить, превысило ли задание пределы управления скоростью ЦП. В противном случае этот элемент игнорируется.
Этот элемент может быть одним из следующих значений. Если значение не указано, используется ToleranceIntervalShort .
LimitFlags
Флаги ограничения, которые действуют. Этот элемент представляет собой битовое поле, определяющее, используются ли другие элементы структуры. Можно указать любое сочетание следующих значений.
Значение | Значение |
---|---|
|
Устанавливает предельное количество зафиксированной памяти на уровне задания для всех процессов, связанных с заданием. Элемент JobMemoryLimit содержит дополнительные сведения. |
|
Устанавливает ограничение байтов чтения ввода-вывода до суммы байтов ввода-вывода на уровне задания, считанных всеми процессами, связанными с заданием. Элемент IoReadBytesLimit содержит дополнительные сведения. |
|
Устанавливает ограничение количества байтов записи ввода-вывода в пределах всего задания байтов ввода-вывода, записанных всеми процессами, связанными с заданием. Элемент IoWriteBytesLimit содержит дополнительные сведения. |
|
Устанавливает ограничение времени выполнения задания в пользовательском режиме. Элемент PerJobUserTimeLimit содержит дополнительные сведения. |
|
Устанавливает пороговое значение уведомления для ограничений управления скоростью ЦП, установленных для задания. Элементы RateControlTolerance и RateControlToleranceInterval содержат дополнительные сведения.
Ограничения для управления скоростью ЦП устанавливаются путем вызова SetInformationJobObject с информационным классом JobObjectCpuRateInformationClass . |
Комментарии
При превышении ограничения на уведомления система отправляет JOB_OBJECT_MSG_NOTIFICATION_LIMIT сообщение на порт завершения ввода-вывода, связанный с заданием. Процессы в задании продолжают выполняться и могут продолжать выделять память или передавать байты для чтения или записи за пределами указанных ограничений.
Когда приложение, отслеживающее порт завершения ввода-вывода, получает JOB_OBJECT_MSG_NOTIFICATION_LIMIT сообщение, оно должно вызвать QueryInformationJobObject с информационным классом JobObjectLimitViolationInformation . Сведения о нарушении ограничений получаются в JOBOBJECT_LIMIT_VIOLATION_STRUCTURE, который содержит сведения обо всех ограничениях уведомлений, которые были превышены во время запроса. Система не будет отправлять другое сообщение JOB_OBJECT_MSG_NOTIFICATION_LIMIT до тех пор, пока не будет вызван QueryInformationJobObject .
Ограничения для управления скоростью ЦП для задания устанавливаются в JOBOBJECT_CPU_RATE_CONTROL_INFORMATION структуре. Значения управления скоростью ЦП в структуре JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION указывают, насколько задание может превысить установленные пределы управления скоростью ЦП перед отправкой уведомления.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 8 [только классические приложения] |
Минимальная версия сервера | Windows Server 2012 [только классические приложения] |
Верхняя часть | winnt.h |
См. также раздел
JOBOBJECT_CPU_RATE_CONTROL_INFORMATION