estructura JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION (winnt.h)
Contiene información 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 JobObjectNotificationLimitInformation .
Sintaxis
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;
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 del 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 .
JobMemoryLimit
Si el parámetro LimitFlags especifica JOB_OBJECT_LIMIT_JOB_MEMORY, este miembro es el límite 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.
Para especificar JobMemoryLimit como límite obligatorio y evitar que los procesos de los trabajos que superen el límite sigan confirmando la memoria, consulte la estructura de JOBOBJECT_EXTENDED_LIMIT_INFORMATION .
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 .
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 .
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 límite de memoria confirmada en la suma de memoria confirmada del trabajo para todos los procesos asociados al trabajo. El miembro JobMemoryLimit 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 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 . |
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 JobObjectLimitViolationInformation . La información de infracción de límite se recibe en una JOBOBJECT_LIMIT_VIOLATION_STRUCTURE 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 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 8 [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2012 [solo aplicaciones de escritorio] |
Encabezado | winnt.h |
Consulte también
JOBOBJECT_CPU_RATE_CONTROL_INFORMATION