Compartilhar via


estrutura JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2 (winnt.h)

Contém informações estendidas sobre limites de notificação de recursos que foram excedidos para um objeto de trabalho. Essa estrutura é usada com a função QueryInformationJobObject com a classe de informações JobObjectLimitViolationInformation2 .

Sintaxe

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;

Membros

LimitFlags

Sinalizadores que identificam os limites de notificação em vigor para o trabalho. Esse membro é um campo de bits que determina se outros membros da estrutura são usados. Esse membro pode ser qualquer combinação dos valores a seguir.

Valor Significado
JOB_OBJECT_LIMIT_JOB_MEMORY_HIGH
0x00000200
O trabalho tem um limite de notificação de memória confirmada. O membro JobHighMemoryLimit contém mais informações.
JOB_OBJECT_LIMIT_JOB_MEMORY_LOW
0x00008000
O trabalho tem um limite mínimo de notificação de memória confirmado. O membro JobLowMemoryLimit contém mais informações.
JOB_OBJECT_LIMIT_JOB_READ_BYTES
0x00010000
O trabalho tem um limite de notificação de bytes de leitura de E/S. O membro IoReadBytesLimit contém mais informações.
JOB_OBJECT_LIMIT_JOB_WRITE_BYTES
0x00020000
O trabalho tem um limite de notificação de bytes de gravação de E/S. O membro IoWriteBytesLimit contém mais informações.
JOB_OBJECT_LIMIT_JOB_TIME
0x00000004
O trabalho tem um limite de notificação de tempo de execução no modo de usuário. O membro PerJobUserTimeLimit contém mais informações.
JOB_OBJECT_LIMIT_RATE_CONTROL
0x00040000
O trabalho tem limite de notificação para a extensão em que um trabalho pode exceder seu limite de controle de taxa de CPU. O membro RateControlToleranceLimit contém mais informações.
JOB_OBJECT_LIMIT_CPU_RATE_CONTROL
0x00040000
O trabalho tem limite de notificação para a extensão em que um trabalho pode exceder seu limite de controle de taxa de CPU. O membro CpuRateControlToleranceLimit contém mais informações.
JOB_OBJECT_LIMIT_IO_RATE_CONTROL
0x00080000
O trabalho tem limite de notificação para a extensão em que um trabalho pode exceder seu limite de controle de taxa de E/S. O membro IoRateControlToleranceLimit contém mais informações.
JOB_OBJECT_LIMIT_NET_RATE_CONTROL
0x00100000
O trabalho tem limite de notificação para a extensão em que um trabalho pode exceder seu limite de controle de taxa de rede. O membro NetRateControlToleranceLimit contém mais informações.

ViolationLimitFlags

Sinalizadores que identificam os limites de notificação que foram excedidos. Esse membro é um campo de bits que determina se outros membros da estrutura são usados. Esse membro pode ser qualquer combinação dos valores a seguir.

Valor Significado
JOB_OBJECT_LIMIT_JOB_READ_BYTES
0x00010000
O limite de notificação de bytes de leitura de E/S do trabalho foi excedido. O membro IoReadBytes contém mais informações.
JOB_OBJECT_LIMIT_JOB_WRITE_BYTES
0x00020000
O limite de notificação de bytes de gravação de E/S do trabalho foi excedido. O membro IoWriteBytes contém mais informações.
JOB_OBJECT_LIMIT_JOB_TIME
0x00000004
O limite de notificação de tempo de execução do modo de usuário do trabalho foi excedido. O membro PerJobUserTime contém mais informações.
JOB_OBJECT_LIMIT_JOB_MEMORY_HIGH
0x00000200
O limite máximo de notificação de memória confirmado do trabalho foi excedido. O membro JobMemory contém mais informações.
JOB_OBJECT_LIMIT_JOB_MEMORY_LOW
0x00008000
A memória confirmada do trabalho ficou abaixo do limite mínimo de notificação. O membro JobMemory contém mais informações.
JOB_OBJECT_LIMIT_RATE_CONTROL
0x00040000
O limite de controle de taxa de CPU do trabalho foi excedido. O membro RateControlTolerance contém mais informações.
JOB_OBJECT_LIMIT_CPU_RATE_CONTROL
0x00040000
O limite de controle de taxa de CPU do trabalho foi excedido. O membro CpuRateControlTolerance contém mais informações.
JOB_OBJECT_LIMIT_IO_RATE_CONTROL
0x00080000
O limite de controle de taxa de E/S do trabalho foi excedido. O membro IoRateControlTolerance contém mais informações.
JOB_OBJECT_LIMIT_NET_RATE_CONTROL
0x00100000
O limite de controle de taxa de rede do trabalho foi excedido. O membro NetworkRateControlTolerance contém mais informações.

IoReadBytes

Se o membro ViolationLimitFlagsespecificar JOB_OBJECT_LIMIT_JOB_READ_BYTES, esse membro conterá o total de bytes de leitura de E/S para todos os processos no trabalho no momento em que a notificação foi enviada.

IoReadBytesLimit

Se o membro LimitFlagsespecificar JOB_OBJECT_LIMIT_JOB_READ_BYTES, esse membro conterá o limite de notificação de bytes de leitura de E/S em vigor para o trabalho.

IoWriteBytes

Se o membro ViolationLimitFlagsespecificar JOB_OBJECT_LIMIT_JOB_WRITE_BYTES, esse membro conterá o total de bytes de gravação de E/S para todos os processos no trabalho no momento em que a notificação foi enviada.

IoWriteBytesLimit

Se o membro LimitFlagsespecificar JOB_OBJECT_LIMIT_JOB_WRITE_BYTES, esse membro conterá o limite de notificação de bytes de gravação de E/S em vigor para o trabalho.

PerJobUserTime

Se o membro ViolationLimitFlagsespecificar JOB_OBJECT_LIMIT_JOB_TIME, esse membro conterá o tempo total de execução do modo de usuário para todos os processos no trabalho no momento em que a notificação foi enviada.

PerJobUserTimeLimit

Se o membro LimitFlagsespecificar JOB_OBJECT_LIMIT_JOB_TIME, esse membro conterá o limite de notificação de execução no modo de usuário em vigor para o trabalho.

JobMemory

Se o membro ViolationLimitFlagsespecificar JOB_OBJECT_LIMIT_JOB_MEMORY_HIGH ou JOB_OBJECT_LIMIT_JOB_MEMORY_LOW, esse membro conterá a memória confirmada para todos os processos no trabalho no momento em que a notificação foi enviada.

DUMMYUNIONNAME

DUMMYUNIONNAME.JobHighMemoryLimit

Se o membro LimitFlagsespecificar JOB_OBJECT_LIMIT_JOB_MEMORY_HIGH, esse membro conterá o limite máximo de memória confirmado em vigor para o trabalho.

DUMMYUNIONNAME.JobMemoryLimit

Se o membro LimitFlagsespecificar JOB_OBJECT_LIMIT_JOB_MEMORY, esse membro conterá o limite máximo de memória confirmado em vigor para o trabalho.

DUMMYUNIONNAME2

DUMMYUNIONNAME2.RateControlTolerance

Se o membro LimitFlagsespecificar JOB_OBJECT_LIMIT_RATE_CONTROL, esse membro especificará até que ponto o trabalho excedeu seus limites de controle de taxa de CPU no momento em que a notificação foi enviada. Esse membro pode ser um dos valores a seguir.

Valor Significado
ToleranceLow
1
O trabalho excedeu seus limites de controle de taxa de CPU para 20% do intervalo de tolerância.
ToleranceMedium
2
O trabalho excedeu seus limites de controle de taxa de CPU para 40% do intervalo de tolerância.
ToleranceHigh
3
O trabalho excedeu seus limites de controle de taxa de CPU para 60% do intervalo de tolerância.

DUMMYUNIONNAME2.CpuRateControlTolerance

Se o membro LimitFlagsespecificar JOB_OBJECT_LIMIT_CPU_RATE_CONTROL, esse membro especificará até que ponto o trabalho excedeu seus limites de controle de taxa de CPU no momento em que a notificação foi enviada. Esse membro pode ser um dos valores a seguir.

Valor Significado
ToleranceLow
1
O trabalho excedeu seus limites de controle de taxa de CPU para 20% do intervalo de tolerância.
ToleranceMedium
2
O trabalho excedeu seus limites de controle de taxa de CPU para 40% do intervalo de tolerância.
ToleranceHigh
3
O trabalho excedeu seus limites de controle de taxa de CPU para 60% do intervalo de tolerância.

DUMMYUNIONNAME3

DUMMYUNIONNAME3.RateControlToleranceLimit

Se o membro LimitFlagsespecificar JOB_OBJECT_LIMIT_RATE_CONTROL, esse membro conterá os limites de notificação de controle de taxa de CPU especificados para o trabalho.

Valor Significado
ToleranceLow
1
O trabalho pode exceder seus limites de controle de taxa de CPU para 20% do intervalo de tolerância.
ToleranceMedium
2
O trabalho pode exceder seus limites de controle de taxa de CPU para 40% do intervalo de tolerância.
ToleranceHigh
3
O trabalho pode exceder seus limites de controle de taxa de CPU para 60% do intervalo de tolerância.

DUMMYUNIONNAME3.CpuRateControlToleranceLimit

Se o parâmetro LimitFlagsespecificar JOB_OBJECT_LIMIT_CPU_RATE_CONTROL, esse membro conterá os limites de notificação de controle de taxa de CPU especificados para o trabalho.

Valor Significado
ToleranceLow
1
O trabalho pode exceder seus limites de controle de taxa de CPU para 20% do intervalo de tolerância.
ToleranceMedium
2
O trabalho pode exceder seus limites de controle de taxa de CPU para 40% do intervalo de tolerância.
ToleranceHigh
3
O trabalho pode exceder seus limites de controle de taxa de CPU para 60% do intervalo de tolerância.

JobLowMemoryLimit

Se o membro LimitFlagsespecificar JOB_OBJECT_LIMIT_JOB_MEMORY_LOW, esse membro conterá o limite mínimo de memória confirmado em vigor para o trabalho.

IoRateControlTolerance

Se o membro LimitFlagsespecificar JOB_OBJECT_LIMIT_IO_RATE_CONTROL, esse membro especificará até que ponto o trabalho excedeu seus limites de controle de taxa de E/S no momento em que a notificação foi enviada. Esse membro pode ser um dos valores a seguir.

Valor Significado
ToleranceLow
1
O trabalho excedeu seus limites de controle de taxa de E/S para 20% do intervalo de tolerância.
ToleranceMedium
2
O trabalho excedeu seus limites de controle de taxa de E/S para 40% do intervalo de tolerância.
ToleranceHigh
3
O trabalho excedeu seus limites de controle de taxa de E/S para 60% do intervalo de tolerância.

IoRateControlToleranceLimit

Se o parâmetro LimitFlagsespecificar JOB_OBJECT_LIMIT_IO_RATE_CONTROL, esse membro conterá os limites de notificação de controle de taxa de E/S especificados para o trabalho.

Valor Significado
ToleranceLow
1
O trabalho pode exceder seus limites de controle de taxa de E/S para 20% do intervalo de tolerância.
ToleranceMedium
2
O trabalho pode exceder seus limites de controle de taxa de E/S para 40% do intervalo de tolerância.
ToleranceHigh
3
O trabalho pode exceder seus limites de controle de taxa de E/S para 60% do intervalo de tolerância.

NetRateControlTolerance

Se o membro LimitFlagsespecificar JOB_OBJECT_LIMIT_NET_RATE_CONTROL, esse membro especificará até que ponto o trabalho excedeu seus limites de controle de taxa de rede no momento em que a notificação foi enviada. Esse membro pode ser um dos valores a seguir.

Valor Significado
ToleranceLow
1
O trabalho excedeu seus limites de controle de taxa de rede para 20% do intervalo de tolerância.
ToleranceMedium
2
O trabalho excedeu seus limites de controle de taxa de rede para 40% do intervalo de tolerância.
ToleranceHigh
3
O trabalho excedeu seus limites de controle de taxa de rede para 60% do intervalo de tolerância.

NetRateControlToleranceLimit

Se o parâmetro LimitFlagsespecificar JOB_OBJECT_LIMIT_NETWORK_RATE_CONTROL, esse membro conterá os limites de notificação de controle de taxa de rede especificados para o trabalho.

Valor Significado
ToleranceLow
1
O trabalho pode exceder seus limites de controle de taxa de rede para 20% do intervalo de tolerância.
ToleranceMedium
2
O trabalho pode exceder seus limites de controle de taxa de rede para 40% do intervalo de tolerância.
ToleranceHigh
3
O trabalho pode exceder seus limites de controle de taxa de rede para 60% do intervalo de tolerância.

Comentários

Quando qualquer limite de notificação especificado em uma estrutura de JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2 é excedido, o sistema envia uma mensagem de JOB_OBJECT_MSG_NOTIFICATION_LIMIT para a porta de conclusão de E/S associada ao trabalho.

Para recuperar informações sobre os limites que foram excedidos, o aplicativo que monitora a porta de conclusão de E/S deve chamar a função QueryInformationJobObject com a classe de informações JobObjectLimitViolationInformation2 e um ponteiro para uma estrutura JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2 .

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 10 [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2016 [somente aplicativos da área de trabalho]
Cabeçalho winnt.h

Confira também

JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2

QueryInformationJobObject

SetInformationJobObject