estructura JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2 (winnt.h)

Contiene información extendida sobre los límites de notificación de recursos que se han superado para un objeto de trabajo. Esta estructura se usa con la función QueryInformationJobObject con la clase de información JobObjectLimitViolationInformation2 .

Sintaxis

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;

Miembros

LimitFlags

Marcas que identifican los límites de notificación en vigor para el trabajo. Este miembro es un campo de bits que determina si se usan otros miembros de estructura. Este miembro puede ser cualquier combinación de los valores siguientes.

Valor Significado
JOB_OBJECT_LIMIT_JOB_MEMORY_HIGH
0x00000200
El trabajo tiene un límite de notificación de memoria confirmada. El miembro JobHighMemoryLimit contiene más información.
JOB_OBJECT_LIMIT_JOB_MEMORY_LOW
0x00008000
El trabajo tiene un límite de notificación de memoria mínimo confirmado. El miembro JobLowMemoryLimit contiene más información.
JOB_OBJECT_LIMIT_JOB_READ_BYTES
0x00010000
El trabajo tiene un límite de notificaciones de bytes de lectura de E/S. El miembro IoReadBytesLimit contiene más información.
JOB_OBJECT_LIMIT_JOB_WRITE_BYTES
0x00020000
El trabajo tiene un límite de notificaciones de bytes de escritura de E/S. El miembro IoWriteBytesLimit contiene más información.
JOB_OBJECT_LIMIT_JOB_TIME
0x00000004
El trabajo tiene un límite de notificación de tiempo de ejecución en modo de usuario. El miembro PerJobUserTimeLimit contiene más información.
JOB_OBJECT_LIMIT_RATE_CONTROL
0x00040000
El trabajo tiene un límite de notificación en la medida en que un trabajo puede superar su límite de control de velocidad de CPU. El miembro RateControlToleranceLimit contiene más información.
JOB_OBJECT_LIMIT_CPU_RATE_CONTROL
0x00040000
El trabajo tiene un límite de notificación en la medida en que un trabajo puede superar su límite de control de velocidad de CPU. El miembro CpuRateControlToleranceLimit contiene más información.
JOB_OBJECT_LIMIT_IO_RATE_CONTROL
0x00080000
El trabajo tiene límite de notificación en la medida en que un trabajo puede superar su límite de control de velocidad de E/S. El miembro IoRateControlToleranceLimit contiene más información.
JOB_OBJECT_LIMIT_NET_RATE_CONTROL
0x00100000
El trabajo tiene un límite de notificación en la medida en que un trabajo puede superar su límite de control de velocidad de red. El miembro NetRateControlToleranceLimit contiene más información.

ViolationLimitFlags

Marcas que identifican los límites de notificación que se han superado. Este miembro es un campo de bits que determina si se usan otros miembros de estructura. Este miembro puede ser cualquier combinación de los valores siguientes.

Valor Significado
JOB_OBJECT_LIMIT_JOB_READ_BYTES
0x00010000
Se ha superado el límite de notificaciones de bytes de lectura de E/S del trabajo. El miembro IoReadBytes contiene más información.
JOB_OBJECT_LIMIT_JOB_WRITE_BYTES
0x00020000
Se ha superado el límite de notificaciones de bytes de escritura de E/S del trabajo. El miembro IoWriteBytes contiene más información.
JOB_OBJECT_LIMIT_JOB_TIME
0x00000004
Se ha superado el límite de notificación de tiempo de ejecución del modo de usuario del trabajo. El miembro PerJobUserTime contiene más información.
JOB_OBJECT_LIMIT_JOB_MEMORY_HIGH
0x00000200
Se ha superado el límite de notificación de memoria máxima confirmada del trabajo. El miembro JobMemory contiene más información.
JOB_OBJECT_LIMIT_JOB_MEMORY_LOW
0x00008000
La memoria confirmada del trabajo ha caído por debajo de su límite mínimo de notificaciones. El miembro JobMemory contiene más información.
JOB_OBJECT_LIMIT_RATE_CONTROL
0x00040000
Se ha superado el límite de control de velocidad de CPU del trabajo. El miembro RateControlTolerance contiene más información.
JOB_OBJECT_LIMIT_CPU_RATE_CONTROL
0x00040000
Se ha superado el límite de control de velocidad de CPU del trabajo. El miembro CpuRateControlTolerance contiene más información.
JOB_OBJECT_LIMIT_IO_RATE_CONTROL
0x00080000
Se ha superado el límite de control de velocidad de E/S del trabajo. El miembro IoRateControlTolerance contiene más información.
JOB_OBJECT_LIMIT_NET_RATE_CONTROL
0x00100000
Se ha superado el límite de control de velocidad de red del trabajo. El miembro NetworkRateControlTolerance contiene más información.

IoReadBytes

Si el miembro ViolationLimitFlags especifica JOB_OBJECT_LIMIT_JOB_READ_BYTES, este miembro contiene el total de bytes de lectura de E/S para todos los procesos del trabajo en el momento en que se envió la notificación.

IoReadBytesLimit

Si el miembro LimitFlags especifica JOB_OBJECT_LIMIT_JOB_READ_BYTES, este miembro contiene el límite de notificaciones de bytes de lectura de E/S en vigor para el trabajo.

IoWriteBytes

Si el miembro ViolationLimitFlags especifica JOB_OBJECT_LIMIT_JOB_WRITE_BYTES, este miembro contiene el total de bytes de escritura de E/S para todos los procesos del trabajo en el momento en que se envió la notificación.

IoWriteBytesLimit

Si el miembro LimitFlags especifica JOB_OBJECT_LIMIT_JOB_WRITE_BYTES, este miembro contiene el límite de notificaciones de bytes de escritura de E/S en vigor para el trabajo.

PerJobUserTime

Si el miembro ViolationLimitFlags especifica JOB_OBJECT_LIMIT_JOB_TIME, este miembro contiene el tiempo total de ejecución del modo de usuario para todos los procesos del trabajo en el momento en que se envió la notificación.

PerJobUserTimeLimit

Si el miembro LimitFlags especifica JOB_OBJECT_LIMIT_JOB_TIME, este miembro contiene el límite de notificación de ejecución en modo de usuario en vigor para el trabajo.

JobMemory

Si el miembro ViolationLimitFlags especifica JOB_OBJECT_LIMIT_JOB_MEMORY_HIGH o JOB_OBJECT_LIMIT_JOB_MEMORY_LOW, este miembro contiene la memoria confirmada para todos los procesos del trabajo en el momento en que se envió la notificación.

DUMMYUNIONNAME

DUMMYUNIONNAME.JobHighMemoryLimit

Si el miembro LimitFlags especifica JOB_OBJECT_LIMIT_JOB_MEMORY_HIGH, este miembro contiene el límite de memoria máximo confirmado en vigor para el trabajo.

DUMMYUNIONNAME.JobMemoryLimit

Si el miembro LimitFlags especifica JOB_OBJECT_LIMIT_JOB_MEMORY, este miembro contiene el límite de memoria máximo confirmado en vigor para el trabajo.

DUMMYUNIONNAME2

DUMMYUNIONNAME2.RateControlTolerance

Si el miembro LimitFlags especifica JOB_OBJECT_LIMIT_RATE_CONTROL, este miembro especifica la medida en que el trabajo superó sus límites de control de velocidad de CPU en el momento en que se envió la notificación. Este miembro puede ser uno de los valores siguientes.

Valor Significado
ToleranceLow
1
El trabajo superó sus límites de control de velocidad de CPU para el 20 % del intervalo de tolerancia.
ToleranceMedium
2
El trabajo superó sus límites de control de velocidad de CPU para el 40 % del intervalo de tolerancia.
ToleranceHigh
3
El trabajo superó sus límites de control de velocidad de CPU para el 60 % del intervalo de tolerancia.

DUMMYUNIONNAME2.CpuRateControlTolerance

Si el miembro LimitFlags especifica JOB_OBJECT_LIMIT_CPU_RATE_CONTROL, este miembro especifica la medida en que el trabajo superó sus límites de control de velocidad de CPU en el momento en que se envió la notificación. Este miembro puede ser uno de los valores siguientes.

Valor Significado
ToleranceLow
1
El trabajo superó sus límites de control de velocidad de CPU para el 20 % del intervalo de tolerancia.
ToleranceMedium
2
El trabajo superó sus límites de control de velocidad de CPU para el 40 % del intervalo de tolerancia.
ToleranceHigh
3
El trabajo superó sus límites de control de velocidad de CPU para el 60 % del intervalo de tolerancia.

DUMMYUNIONNAME3

DUMMYUNIONNAME3.RateControlToleranceLimit

Si el miembro LimitFlags especifica JOB_OBJECT_LIMIT_RATE_CONTROL, este miembro contiene los límites de notificación de control de velocidad de CPU especificados para el trabajo.

Valor Significado
ToleranceLow
1
El trabajo puede superar sus límites de control de velocidad de CPU para el 20 % del intervalo de tolerancia.
ToleranceMedium
2
El trabajo puede superar sus límites de control de velocidad de CPU para el 40 % del intervalo de tolerancia.
ToleranceHigh
3
El trabajo puede superar sus límites de control de velocidad de CPU para el 60 % del intervalo de tolerancia.

DUMMYUNIONNAME3.CpuRateControlToleranceLimit

Si el parámetro LimitFlags especifica JOB_OBJECT_LIMIT_CPU_RATE_CONTROL, este miembro contiene los límites de notificación de control de velocidad de CPU especificados para el trabajo.

Valor Significado
ToleranceLow
1
El trabajo puede superar sus límites de control de velocidad de CPU para el 20 % del intervalo de tolerancia.
ToleranceMedium
2
El trabajo puede superar sus límites de control de velocidad de CPU para el 40 % del intervalo de tolerancia.
ToleranceHigh
3
El trabajo puede superar sus límites de control de velocidad de CPU para el 60 % del intervalo de tolerancia.

JobLowMemoryLimit

Si el miembro LimitFlags especifica JOB_OBJECT_LIMIT_JOB_MEMORY_LOW, este miembro contiene el límite de memoria mínimo confirmado en vigor para el trabajo.

IoRateControlTolerance

Si el miembro LimitFlags especifica JOB_OBJECT_LIMIT_IO_RATE_CONTROL, este miembro especifica la medida en que el trabajo superó sus límites de control de velocidad de E/S en el momento en que se envió la notificación. Este miembro puede ser uno de los valores siguientes.

Valor Significado
ToleranceLow
1
El trabajo superó sus límites de control de velocidad de E/S para el 20 % del intervalo de tolerancia.
ToleranceMedium
2
El trabajo superó sus límites de control de velocidad de E/S para el 40 % del intervalo de tolerancia.
ToleranceHigh
3
El trabajo superó sus límites de control de velocidad de E/S para el 60 % del intervalo de tolerancia.

IoRateControlToleranceLimit

Si el parámetro LimitFlags especifica JOB_OBJECT_LIMIT_IO_RATE_CONTROL, este miembro contiene los límites de notificación de control de velocidad de E/S especificados para el trabajo.

Valor Significado
ToleranceLow
1
El trabajo puede superar sus límites de control de velocidad de E/S para el 20 % del intervalo de tolerancia.
ToleranceMedium
2
El trabajo puede superar sus límites de control de velocidad de E/S para el 40 % del intervalo de tolerancia.
ToleranceHigh
3
El trabajo puede superar sus límites de control de velocidad de E/S para el 60 % del intervalo de tolerancia.

NetRateControlTolerance

Si el miembro LimitFlags especifica JOB_OBJECT_LIMIT_NET_RATE_CONTROL, este miembro especifica la medida en que el trabajo superó sus límites de control de velocidad de red en el momento en que se envió la notificación. Este miembro puede ser uno de los valores siguientes.

Valor Significado
ToleranceLow
1
El trabajo superó sus límites de control de velocidad de red para el 20 % del intervalo de tolerancia.
ToleranceMedium
2
El trabajo superó sus límites de control de velocidad de red para el 40 % del intervalo de tolerancia.
ToleranceHigh
3
El trabajo superó sus límites de control de velocidad de red para el 60 % del intervalo de tolerancia.

NetRateControlToleranceLimit

Si el parámetro LimitFlags especifica JOB_OBJECT_LIMIT_NETWORK_RATE_CONTROL, este miembro contiene los límites de notificación de control de velocidad de red especificados para el trabajo.

Valor Significado
ToleranceLow
1
El trabajo puede superar sus límites de control de velocidad de red para el 20 % del intervalo de tolerancia.
ToleranceMedium
2
El trabajo puede superar sus límites de control de velocidad de red para el 40 % del intervalo de tolerancia.
ToleranceHigh
3
El trabajo puede superar sus límites de control de velocidad de red para el 60 % del intervalo de tolerancia.

Comentarios

Cuando se supera cualquier límite de notificación especificado en una estructura de JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2 , el sistema envía un mensaje JOB_OBJECT_MSG_NOTIFICATION_LIMIT al puerto de finalización de E/S asociado al trabajo.

Para recuperar información sobre los límites que se superaron, la aplicación que supervisa el puerto de finalización de E/S debe llamar a la función QueryInformationJobObject con la clase de información JobObjectLimitViolationInformation2 y un puntero a una estructura de JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2 .

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_NOTIFICATION_LIMIT_INFORMATION_2

QueryInformationJobObject

SetInformationJobObject