다음을 통해 공유


JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2 구조체(winnt.h)

작업 개체에 대해 초과된 리소스 알림 제한에 대한 확장된 정보를 포함합니다. 이 구조체는 JobObjectLimitViolationInformation2 정보 클래스와 함께 QueryInformationJobObject 함수와 함께 사용됩니다.

구문

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;

멤버

LimitFlags

작업에 적용되는 알림 제한을 식별하는 플래그입니다. 이 멤버는 다른 구조체 멤버가 사용되는지 여부를 결정하는 비트 필드입니다. 이 멤버는 다음 값의 조합일 수 있습니다.

의미
JOB_OBJECT_LIMIT_JOB_MEMORY_HIGH
0x00000200
작업에 커밋된 메모리 알림 제한이 있습니다. JobHighMemoryLimit 멤버에 자세한 정보가 포함되어 있습니다.
JOB_OBJECT_LIMIT_JOB_MEMORY_LOW
0x00008000
작업에 커밋된 최소 메모리 알림 제한이 있습니다. JobLowMemoryLimit 멤버에 자세한 정보가 포함되어 있습니다.
JOB_OBJECT_LIMIT_JOB_READ_BYTES
0x00010000
작업에 I/O 읽기 바이트 알림 제한이 있습니다. IoReadBytesLimit 멤버에는 자세한 정보가 포함되어 있습니다.
JOB_OBJECT_LIMIT_JOB_WRITE_BYTES
0x00020000
작업에 I/O 쓰기 바이트 알림 제한이 있습니다. IoWriteBytesLimit 멤버에는 자세한 정보가 포함되어 있습니다.
JOB_OBJECT_LIMIT_JOB_TIME
0x00000004
작업에는 사용자 모드 실행 시간 알림 제한이 있습니다. PerJobUserTimeLimit 멤버에 자세한 정보가 포함되어 있습니다.
JOB_OBJECT_LIMIT_RATE_CONTROL
0x00040000
작업에는 작업이 CPU 속도 제어 제한을 초과할 수 있는 범위에 대한 알림 제한이 있습니다. RateControlToleranceLimit 멤버에 자세한 정보가 포함되어 있습니다.
JOB_OBJECT_LIMIT_CPU_RATE_CONTROL
0x00040000
작업에는 작업이 CPU 속도 제어 제한을 초과할 수 있는 범위에 대한 알림 제한이 있습니다. CpuRateControlToleranceLimit 멤버에 자세한 정보가 포함되어 있습니다.
JOB_OBJECT_LIMIT_IO_RATE_CONTROL
0x00080000
작업에는 작업이 I/O 속도 제어 제한을 초과할 수 있는 범위에 대한 알림 제한이 있습니다. IoRateControlToleranceLimit 멤버에 자세한 정보가 포함되어 있습니다.
JOB_OBJECT_LIMIT_NET_RATE_CONTROL
0x00100000
작업에는 작업이 네트워크 속도 제어 제한을 초과할 수 있는 범위에 대한 알림 제한이 있습니다. NetRateControlToleranceLimit 멤버에 자세한 정보가 포함되어 있습니다.

ViolationLimitFlags

초과된 알림 제한을 식별하는 플래그입니다. 이 멤버는 다른 구조체 멤버가 사용되는지 여부를 결정하는 비트 필드입니다. 이 멤버는 다음 값의 조합일 수 있습니다.

의미
JOB_OBJECT_LIMIT_JOB_READ_BYTES
0x00010000
작업의 I/O 읽기 바이트 알림 제한이 초과되었습니다. IoReadBytes 멤버에는 자세한 정보가 포함되어 있습니다.
JOB_OBJECT_LIMIT_JOB_WRITE_BYTES
0x00020000
작업의 I/O 쓰기 바이트 알림 제한이 초과되었습니다. IoWriteBytes 멤버에는 자세한 정보가 포함되어 있습니다.
JOB_OBJECT_LIMIT_JOB_TIME
0x00000004
작업의 사용자 모드 실행 시간 알림 제한을 초과했습니다. PerJobUserTime 멤버에 자세한 정보가 포함되어 있습니다.
JOB_OBJECT_LIMIT_JOB_MEMORY_HIGH
0x00000200
작업의 커밋된 최대 메모리 알림 제한이 초과되었습니다. JobMemory 멤버에 자세한 정보가 포함되어 있습니다.
JOB_OBJECT_LIMIT_JOB_MEMORY_LOW
0x00008000
작업의 커밋된 메모리가 최소 알림 한도 아래로 떨어졌습니다. JobMemory 멤버에 자세한 정보가 포함되어 있습니다.
JOB_OBJECT_LIMIT_RATE_CONTROL
0x00040000
작업의 CPU 속도 제어 제한을 초과했습니다. RateControlTolerance 멤버에 자세한 정보가 포함되어 있습니다.
JOB_OBJECT_LIMIT_CPU_RATE_CONTROL
0x00040000
작업의 CPU 속도 제어 제한을 초과했습니다. CpuRateControlTolerance 멤버에 자세한 정보가 포함되어 있습니다.
JOB_OBJECT_LIMIT_IO_RATE_CONTROL
0x00080000
작업의 I/O 속도 제어 제한을 초과했습니다. IoRateControlTolerance 멤버에 자세한 정보가 포함되어 있습니다.
JOB_OBJECT_LIMIT_NET_RATE_CONTROL
0x00100000
작업의 네트워크 속도 제어 제한을 초과했습니다. NetworkRateControlTolerance 멤버에 자세한 정보가 포함되어 있습니다.

IoReadBytes

ViolationLimitFlags 멤버가 JOB_OBJECT_LIMIT_JOB_READ_BYTES 지정하는 경우 이 멤버는 알림을 보낼 때 작업의 모든 프로세스에 대한 총 I/O 읽기 바이트를 포함합니다.

IoReadBytesLimit

LimitFlags 멤버가 JOB_OBJECT_LIMIT_JOB_READ_BYTES 지정하는 경우 이 멤버는 작업에 적용되는 I/O 읽기 바이트 알림 제한을 포함합니다.

IoWriteBytes

ViolationLimitFlags 멤버가 JOB_OBJECT_LIMIT_JOB_WRITE_BYTES 지정하는 경우 이 멤버는 알림을 보낼 때 작업의 모든 프로세스에 대한 총 I/O 쓰기 바이트를 포함합니다.

IoWriteBytesLimit

LimitFlags 멤버가 JOB_OBJECT_LIMIT_JOB_WRITE_BYTES 지정하는 경우 이 멤버는 작업에 적용되는 I/O 쓰기 바이트 알림 제한을 포함합니다.

PerJobUserTime

ViolationLimitFlags 멤버가 JOB_OBJECT_LIMIT_JOB_TIME 지정하는 경우 이 멤버는 알림을 보낼 때 작업의 모든 프로세스에 대한 총 사용자 모드 실행 시간을 포함합니다.

PerJobUserTimeLimit

LimitFlags 멤버가 JOB_OBJECT_LIMIT_JOB_TIME 지정하는 경우 이 멤버는 작업에 적용되는 사용자 모드 실행 알림 제한을 포함합니다.

JobMemory

ViolationLimitFlags 멤버가 JOB_OBJECT_LIMIT_JOB_MEMORY_HIGH 또는 JOB_OBJECT_LIMIT_JOB_MEMORY_LOW 지정하는 경우 이 멤버는 알림을 보낼 때 작업의 모든 프로세스에 대해 커밋된 메모리를 포함합니다.

DUMMYUNIONNAME

DUMMYUNIONNAME.JobHighMemoryLimit

LimitFlags 멤버가 JOB_OBJECT_LIMIT_JOB_MEMORY_HIGH 지정하는 경우 이 멤버는 작업에 적용되는 커밋된 최대 메모리 제한을 포함합니다.

DUMMYUNIONNAME.JobMemoryLimit

LimitFlags 멤버가 JOB_OBJECT_LIMIT_JOB_MEMORY 지정하는 경우 이 멤버는 작업에 적용되는 커밋된 최대 메모리 제한을 포함합니다.

DUMMYUNIONNAME2

DUMMYUNIONNAME2.RateControlTolerance

LimitFlags 멤버가 JOB_OBJECT_LIMIT_RATE_CONTROL 지정하는 경우 이 멤버는 알림이 전송될 때 작업이 CPU 속도 제어 제한을 초과한 정도를 지정합니다. 이 멤버는 다음 값 중 하나일 수 있습니다.

의미
ToleranceLow
1
작업이 허용 오차 간격의 20%에 대한 CPU 속도 제어 제한을 초과했습니다.
ToleranceMedium
2
작업이 허용 오차 간격의 40%에 대한 CPU 속도 제어 제한을 초과했습니다.
ToleranceHigh
3
작업이 허용 오차 간격의 60%에 대한 CPU 속도 제어 제한을 초과했습니다.

DUMMYUNIONNAME2.CpuRateControlTolerance

LimitFlags 멤버가 JOB_OBJECT_LIMIT_CPU_RATE_CONTROL 지정하는 경우 이 멤버는 알림이 전송될 때 작업이 CPU 속도 제어 제한을 초과한 정도를 지정합니다. 이 멤버는 다음 값 중 하나일 수 있습니다.

의미
ToleranceLow
1
작업이 허용 오차 간격의 20%에 대한 CPU 속도 제어 제한을 초과했습니다.
ToleranceMedium
2
작업이 허용 오차 간격의 40%에 대한 CPU 속도 제어 제한을 초과했습니다.
ToleranceHigh
3
작업이 허용 오차 간격의 60%에 대한 CPU 속도 제어 제한을 초과했습니다.

DUMMYUNIONNAME3

DUMMYUNIONNAME3.RateControlToleranceLimit

LimitFlags 멤버가 JOB_OBJECT_LIMIT_RATE_CONTROL 지정하는 경우 이 멤버는 작업에 대해 지정된 CPU 속도 제어 알림 제한을 포함합니다.

의미
ToleranceLow
1
작업은 허용 오차 간격의 20%에 대한 CPU 속도 제어 제한을 초과할 수 있습니다.
ToleranceMedium
2
작업은 허용 오차 간격의 40%에 대한 CPU 속도 제어 제한을 초과할 수 있습니다.
ToleranceHigh
3
작업은 허용 오차 간격의 60%에 대한 CPU 속도 제어 제한을 초과할 수 있습니다.

DUMMYUNIONNAME3.CpuRateControlToleranceLimit

LimitFlags 매개 변수가 JOB_OBJECT_LIMIT_CPU_RATE_CONTROL 지정하는 경우 이 멤버는 작업에 지정된 CPU 속도 제어 알림 제한을 포함합니다.

의미
ToleranceLow
1
작업은 허용 오차 간격의 20%에 대한 CPU 속도 제어 제한을 초과할 수 있습니다.
ToleranceMedium
2
작업은 허용 오차 간격의 40%에 대한 CPU 속도 제어 제한을 초과할 수 있습니다.
ToleranceHigh
3
작업은 허용 오차 간격의 60%에 대한 CPU 속도 제어 제한을 초과할 수 있습니다.

JobLowMemoryLimit

LimitFlags 멤버가 JOB_OBJECT_LIMIT_JOB_MEMORY_LOW 지정하는 경우 이 멤버는 작업에 적용되는 커밋된 최소 메모리 제한을 포함합니다.

IoRateControlTolerance

LimitFlags 멤버가 JOB_OBJECT_LIMIT_IO_RATE_CONTROL 지정하는 경우 이 멤버는 알림이 전송될 때 작업이 I/O 속도 제어 제한을 초과한 정도를 지정합니다. 이 멤버는 다음 값 중 하나일 수 있습니다.

의미
ToleranceLow
1
작업이 허용 오차 간격의 20%에 대한 I/O 속도 제어 제한을 초과했습니다.
ToleranceMedium
2
작업이 허용 오차 간격의 40%에 대한 I/O 속도 제어 제한을 초과했습니다.
ToleranceHigh
3
작업이 허용 오차 간격의 60%에 대한 I/O 속도 제어 제한을 초과했습니다.

IoRateControlToleranceLimit

LimitFlags 매개 변수가 JOB_OBJECT_LIMIT_IO_RATE_CONTROL 지정하는 경우 이 멤버는 작업에 대해 지정된 I/O 속도 제어 알림 제한을 포함합니다.

의미
ToleranceLow
1
작업은 허용 오차 간격의 20%에 대한 I/O 속도 제어 제한을 초과할 수 있습니다.
ToleranceMedium
2
작업은 허용 오차 간격의 40%에 대한 I/O 속도 제어 제한을 초과할 수 있습니다.
ToleranceHigh
3
작업은 허용 오차 간격의 60%에 대한 I/O 속도 제어 제한을 초과할 수 있습니다.

NetRateControlTolerance

LimitFlags 멤버가 JOB_OBJECT_LIMIT_NET_RATE_CONTROL 지정하는 경우 이 멤버는 알림이 전송될 때 작업이 네트워크 속도 제어 제한을 초과한 정도를 지정합니다. 이 멤버는 다음 값 중 하나일 수 있습니다.

의미
ToleranceLow
1
작업이 허용 오차 간격의 20%에 대한 네트워크 속도 제어 제한을 초과했습니다.
ToleranceMedium
2
작업이 허용 오차 간격의 40%에 대한 네트워크 속도 제어 제한을 초과했습니다.
ToleranceHigh
3
작업이 허용 오차 간격의 60%에 대한 네트워크 속도 제어 제한을 초과했습니다.

NetRateControlToleranceLimit

LimitFlags 매개 변수가 JOB_OBJECT_LIMIT_NETWORK_RATE_CONTROL 지정하는 경우 이 멤버는 작업에 대해 지정된 네트워크 속도 제어 알림 제한을 포함합니다.

의미
ToleranceLow
1
작업은 허용 오차 간격의 20%에 대한 네트워크 속도 제어 제한을 초과할 수 있습니다.
ToleranceMedium
2
작업은 허용 오차 간격의 40%에 대한 네트워크 속도 제어 제한을 초과할 수 있습니다.
ToleranceHigh
3
작업은 허용 오차 간격의 60%에 대한 네트워크 속도 제어 제한을 초과할 수 있습니다.

설명

JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2 구조에 지정된 알림 제한이 초과되면 시스템은 작업과 연결된 I/O 완료 포트에 JOB_OBJECT_MSG_NOTIFICATION_LIMIT 메시지를 보냅니다.

초과된 제한에 대한 정보를 검색하려면 I/O 완료 포트를 모니터링하는 애플리케이션이 JobObjectLimitViolationInformation2 정보 클래스 및 JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2 구조체에 대한 포인터를 사용하여 QueryInformationJobObject 함수를 호출해야 합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 10 [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2016 [데스크톱 앱만 해당]
머리글 winnt.h

추가 정보

JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2

QueryInformationJobObject

SetInformationJobObject