estrutura JOBOBJECT_LIMIT_VIOLATION_INFORMATION (winnt.h)

Contém informações 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ção JobObjectLimitViolationInformation .

Sintaxe

typedef struct _JOBOBJECT_LIMIT_VIOLATION_INFORMATION {
  DWORD                            LimitFlags;
  DWORD                            ViolationLimitFlags;
  DWORD64                          IoReadBytes;
  DWORD64                          IoReadBytesLimit;
  DWORD64                          IoWriteBytes;
  DWORD64                          IoWriteBytesLimit;
  LARGE_INTEGER                    PerJobUserTime;
  LARGE_INTEGER                    PerJobUserTimeLimit;
  DWORD64                          JobMemory;
  DWORD64                          JobMemoryLimit;
  JOBOBJECT_RATE_CONTROL_TOLERANCE RateControlTolerance;
  JOBOBJECT_RATE_CONTROL_TOLERANCE RateControlToleranceLimit;
} JOBOBJECT_LIMIT_VIOLATION_INFORMATION, *PJOBOBJECT_LIMIT_VIOLATION_INFORMATION;

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
0x00000200
O trabalho tem um limite de notificação de memória confirmado. O membro JobMemoryLimit 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_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_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_RATE_CONTROL
0x00040000
Até que ponto um trabalho pode exceder seu limite de controle de taxa de CPU. O membro RateControlToleranceLimit 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_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_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
0x00000200
O limite de notificação de memória confirmada do trabalho foi excedido. 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.

IoReadBytes

Se o membro ViolationLimitFlags especificar JOB_OBJECT_LIMIT_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 LimitFlags especificar JOB_OBJECT_LIMIT_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 ViolationLimitFlags especificar JOB_OBJECT_LIMIT_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 LimitFlags especificar JOB_OBJECT_LIMIT_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 ViolationLimitFlags especificar 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 LimitFlags especificar 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 ViolationLimitFlags especificar JOB_OBJECT_LIMIT_JOB_MEMORY, esse membro conterá a memória confirmada para todos os processos no trabalho no momento em que a notificação foi enviada.

JobMemoryLimit

Se o membro LimitFlags especificar JOB_OBJECT_LIMIT_JOB_MEMORY, esse membro conterá o limite de memória confirmado em vigor para o trabalho.

RateControlTolerance

Se o parâmetro LimitFlags especificar 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.

RateControlToleranceLimit

Se o parâmetro LimitFlags especificar 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
ToleranceIntervalShort
1
O intervalo de tolerância é de 10 segundos.
ToleranceIntervalMedium
2
O intervalo de tolerância é de um minuto.
ToleranceIntervalLong
3
O intervalo de tolerância é de 10 minutos.

Comentários

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

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

Requisitos

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

Confira também

QueryInformationJobObject

SetInformationJobObject