estructura JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2 (winnt.h)
Contiene información extendida sobre los límites de notificación de un objeto de trabajo. Esta estructura la usan las funciones SetInformationJobObject y QueryInformationJobObject con la clase de información JobObjectNotificationLimitInformation2 .
Sintaxis
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;
Miembros
IoReadBytesLimit
Si el miembro LimitFlags especifica JOB_OBJECT_LIMIT_JOB_READ_BYTES, este miembro es el límite de notificación para el total de bytes de E/S leídos por todos los procesos del trabajo. De lo contrario, se omite este miembro.
IoWriteBytesLimit
Si el parámetro LimitFlags especifica JOB_OBJECT_LIMIT_JOB_WRITE_BYTES, este miembro es el límite de notificación para el total de bytes de E/S escritos por todos los procesos del trabajo. De lo contrario, se omite este miembro.
PerJobUserTimeLimit
Si el parámetro LimitFlags especifica JOB_OBJECT_LIMIT_JOB_TIME, este miembro es el límite de notificación para el tiempo de ejecución en modo usuario por trabajo, en tics de 100 nanosegundos. De lo contrario, se omite este miembro.
El sistema agrega el tiempo de ejecución acumulado de los procesos asociados al trabajo a este límite cuando se establece el límite. Por ejemplo, si un proceso asociado al trabajo ya ha acumulado 5 minutos de tiempo de ejecución del modo de usuario y el límite se establece en 1 minuto, el límite realmente aplicado es de 6 minutos.
Para especificar PerJobUserTimeLimit como límite aplicable y finalizar los procesos en trabajos que superan el límite, consulte la estructura de JOBOBJECT_BASIC_LIMIT_INFORMATION .
DUMMYUNIONNAME
DUMMYUNIONNAME.JobHighMemoryLimit
Si el parámetro LimitFlags especifica JOB_OBJECT_LIMIT_JOB_MEMORY_HIGH, este miembro es el límite máximo de notificación para la memoria virtual total que todos los procesos del trabajo pueden confirmar, en bytes. De lo contrario, se omite este miembro.
DUMMYUNIONNAME.JobMemoryLimit
Si el parámetro LimitFlags especifica JOB_OBJECT_LIMIT_JOB_MEMORY, este miembro es el límite máximo de notificación para la memoria virtual total que todos los procesos del trabajo pueden confirmar, en bytes. De lo contrario, se omite este miembro.
DUMMYUNIONNAME2
DUMMYUNIONNAME2.RateControlTolerance
Si el parámetro LimitFlags especifica JOB_OBJECT_LIMIT_RATE_CONTROL, este miembro especifica la medida en que un trabajo puede superar sus límites de control de velocidad de CPU durante el intervalo especificado por el miembro RateControlToleranceInterval . De lo contrario, se omite este miembro.
Este miembro puede ser uno de los siguientes valores. Si no se especifica ningún valor, se usa ToleranceHigh .
DUMMYUNIONNAME2.CpuRateControlTolerance
Si el parámetro LimitFlags especifica JOB_OBJECT_LIMIT_CPU_RATE_CONTROL, este miembro especifica la medida en que un trabajo puede superar sus límites de control de velocidad de CPU durante el intervalo especificado por el miembro CpuRateControlToleranceInterval . De lo contrario, se omite este miembro.
Este miembro puede ser uno de los siguientes valores. Si no se especifica ningún valor, se usa ToleranceHigh .
DUMMYUNIONNAME3
DUMMYUNIONNAME3.RateControlToleranceInterval
Si el parámetro LimitFlags especifica JOB_OBJECT_LIMIT_RATE_CONTROL, este miembro especifica el intervalo durante el que se supervisa el uso de CPU de un trabajo para determinar si el trabajo ha superado sus límites de control de velocidad de CPU. De lo contrario, se omite este miembro.
Este miembro puede ser uno de los siguientes valores. Si no se especifica ningún valor, se usa ToleranceIntervalShort .
DUMMYUNIONNAME3.CpuRateControlToleranceInterval
Si el parámetro LimitFlags especifica JOB_OBJECT_CPU_LIMIT_RATE_CONTROL, este miembro especifica el intervalo durante el cual se supervisa el uso de CPU de un trabajo para determinar si el trabajo ha superado sus límites de control de velocidad de CPU. De lo contrario, se omite este miembro.
Este miembro puede ser uno de los siguientes valores. Si no se especifica ningún valor, se usa ToleranceIntervalShort .
LimitFlags
Marcas de límite que están en vigor. Este miembro es un campo de bits que determina si se usan otros miembros de estructura. Se puede especificar cualquier combinación de los valores siguientes.
Valor | Significado |
---|---|
|
Establece el umbral de notificación para la suma en todo el trabajo de la memoria confirmada privada para todos los procesos asociados al trabajo. El miembro JobHighMemoryLimit contiene información adicional. |
|
Establece el mínimo de notificación para la suma en todo el trabajo de la memoria confirmada privada para todos los procesos asociados al trabajo. Si se establece este valor, se envía una notificación cuando la cantidad de memoria confirmada privada cae por debajo de este umbral. El miembro JobLowMemoryLimit contiene información adicional. |
|
Establece el límite de bytes de lectura de E/S a la suma de bytes de E/S leídos por todos los procesos asociados al trabajo. El miembro IoReadBytesLimit contiene más información. |
|
Establece el límite de bytes de escritura de E/S en la suma de bytes de E/S escritos por todos los procesos asociados al trabajo. El miembro IoWriteBytesLimit contiene más información. |
|
Establece el límite para el tiempo de ejecución del modo de usuario para el trabajo. El miembro PerJobUserTimeLimit contiene información adicional. |
|
Establece el umbral de notificación para los límites de control de velocidad de CPU establecidos para el trabajo. Los miembros CpuRateControlTolerance y CpuRateControlToleranceInterval contienen información adicional.
Los límites de control de velocidad de CPU se establecen llamando a SetInformationJobObject con la clase de información JobObjectCpuRateInformationClass . |
|
Establece el umbral de notificación para los límites de control de velocidad de CPU establecidos para el trabajo. Los miembros RateControlTolerance y RateControlToleranceInterval contienen información adicional.
Los límites de control de velocidad de CPU se establecen llamando a SetInformationJobObject con la clase de información JobObjectCpuRateInformationClass . |
|
Establece el umbral de notificación para los límites de control de velocidad de E/S establecidos para el trabajo. Los miembros IoRateControlTolerance e IoRateControlToleranceInterval contienen información adicional.
Los límites de control de velocidad de E/S se establecen llamando a SetIoRateControlInformationJobObject. |
|
Establece el umbral de notificación para los límites de control de velocidad de red establecidos para el trabajo. Los miembros NetRateControlTolerance y NetRateControlToleranceInterval contienen información adicional.
Los límites de control de velocidad de red se establecen llamando a SetInformationJobObject con la clase de información JobObjectNetRateInformationClass . |
IoRateControlTolerance
Si el parámetro LimitFlags especifica JOB_OBJECT_LIMIT_IO_RATE_CONTROL, este miembro especifica la medida en que un trabajo puede superar sus límites de control de velocidad de E/S durante el intervalo especificado por el miembro IoRateControlToleranceInterval . De lo contrario, se omite este miembro.
Este miembro puede ser uno de los siguientes valores. Si no se especifica ningún valor, se usa ToleranceHigh .
JobLowMemoryLimit
Si el parámetro LimitFlags especifica JOB_OBJECT_LIMIT_JOB_MEMORY_LOW, este miembro es el límite de notificación mínimo para la memoria virtual total que todos los procesos del trabajo pueden confirmar, en bytes. De lo contrario, se omite este miembro.
IoRateControlToleranceInterval
Si el parámetro LimitFlags especifica JOB_OBJECT_IO_LIMIT_RATE_CONTROL, este miembro especifica el intervalo durante el cual se supervisa el uso de E/S de un trabajo para determinar si el trabajo ha superado sus límites de control de velocidad de E/S. De lo contrario, se omite este miembro.
Este miembro puede ser uno de los siguientes valores. Si no se especifica ningún valor, se usa ToleranceIntervalShort .
NetRateControlTolerance
Si el parámetro LimitFlags especifica JOB_OBJECT_LIMIT_IO_RATE_CONTROL, este miembro especifica la medida en que un trabajo puede superar sus límites de control de velocidad de red durante el intervalo especificado por el miembro NetRateControlToleranceInterval . De lo contrario, se omite este miembro.
Este miembro puede ser uno de los siguientes valores. Si no se especifica ningún valor, se usa ToleranceHigh .
NetRateControlToleranceInterval
Si el parámetro LimitFlags especifica JOB_OBJECT_NET_LIMIT_RATE_CONTROL, este miembro especifica el intervalo durante el cual se supervisa el uso de red de un trabajo para determinar si el trabajo ha superado sus límites de control de velocidad de red. De lo contrario, se omite este miembro.
Este miembro puede ser uno de los siguientes valores. Si no se especifica ningún valor, se usa ToleranceIntervalShort .
Comentarios
Cuando se supera un límite de notificación, el sistema envía un mensaje de JOB_OBJECT_MSG_NOTIFICATION_LIMIT al puerto de finalización de E/S asociado al trabajo. Los procesos del trabajo continúan ejecutándose y pueden seguir asignando memoria o transmitir bytes de lectura o escritura más allá de los límites especificados.
Cuando la aplicación que supervisa el puerto de finalización de E/S recibe un mensaje de JOB_OBJECT_MSG_NOTIFICATION_LIMIT , debe llamar a QueryInformationJobObject con la clase de información JobObjectLimitViolationInformation2 . La información de infracción de límite se recibe en una estructura de JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2 que contiene información sobre todos los límites de notificación que se superaron en el momento de la consulta. El sistema no enviará otro mensaje de JOB_OBJECT_MSG_NOTIFICATION_LIMIT hasta que se llame a QueryInformationJobObject .
Los límites de control de velocidad de CPU para un trabajo se establecen en una estructura de JOBOBJECT_CPU_RATE_CONTROL_INFORMATION . Los valores de control de velocidad de CPU de la estructura JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2 especifican cuánto puede superar el trabajo sus límites de control de velocidad de CPU establecidos antes de enviar la notificación.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 10 [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2016 [solo aplicaciones de escritorio] |
Encabezado | winnt.h |
Consulte también
JOBOBJECT_CPU_RATE_CONTROL_INFORMATION
JOBOBJECT_IO_RATE_CONTROL_INFORMATION
JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2