다음을 통해 공유


JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2 구조체(winnt.h)

작업 개체에 대한 알림 제한에 대한 확장된 정보를 포함합니다. 이 구조체는 JobObjectNotificationLimitInformation2 정보 클래스와 함께 SetInformationJobObjectQueryInformationJobObject 함수에서 사용됩니다.

구문

typedef struct JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2 {
  DWORD64                                   IoReadBytesLimit;
  DWORD64                                   IoWriteBytesLimit;
  LARGE_INTEGER                             PerJobUserTimeLimit;
  union {
    DWORD64 JobHighMemoryLimit;
    DWORD64 JobMemoryLimit;
  } DUMMYUNIONNAME;
  union {
    JOBOBJECT_RATE_CONTROL_TOLERANCE RateControlTolerance;
    JOBOBJECT_RATE_CONTROL_TOLERANCE CpuRateControlTolerance;
  } DUMMYUNIONNAME2;
  union {
    JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL RateControlToleranceInterval;
    JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL CpuRateControlToleranceInterval;
  } DUMMYUNIONNAME3;
  DWORD                                     LimitFlags;
  JOBOBJECT_RATE_CONTROL_TOLERANCE          IoRateControlTolerance;
  DWORD64                                   JobLowMemoryLimit;
  JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL IoRateControlToleranceInterval;
  JOBOBJECT_RATE_CONTROL_TOLERANCE          NetRateControlTolerance;
  JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL NetRateControlToleranceInterval;
} JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2;

멤버

IoReadBytesLimit

LimitFlags 멤버가 JOB_OBJECT_LIMIT_JOB_READ_BYTES 지정하는 경우 이 멤버는 작업의 모든 프로세스에서 읽은 총 I/O 바이트에 대한 알림 제한입니다. 그렇지 않으면 이 멤버는 무시됩니다.

IoWriteBytesLimit

LimitFlags 매개 변수가 JOB_OBJECT_LIMIT_JOB_WRITE_BYTES 지정하는 경우 이 멤버는 작업의 모든 프로세스에서 작성한 총 I/O 바이트에 대한 알림 제한입니다. 그렇지 않으면 이 멤버는 무시됩니다.

PerJobUserTimeLimit

LimitFlags 매개 변수가 JOB_OBJECT_LIMIT_JOB_TIME 지정하는 경우 이 멤버는 100나노초 틱의 작업별 사용자 모드 실행 시간에 대한 알림 제한입니다. 그렇지 않으면 이 멤버는 무시됩니다.

시스템은 제한이 설정된 경우 작업과 연결된 프로세스의 누적 실행 시간을 이 제한에 추가합니다. 예를 들어 작업과 연결된 프로세스가 이미 5분의 사용자 모드 실행 시간을 누적하고 한도가 1분으로 설정된 경우 실제로 적용되는 제한은 6분입니다.

PerJobUserTimeLimit를 적용 가능한 제한으로 지정하고 제한을 초과하는 작업에서 프로세스를 종료하려면 JOBOBJECT_BASIC_LIMIT_INFORMATION 구조를 참조하세요.

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 지정하는 경우 이 멤버는 RateControlToleranceInterval 멤버가 지정한 간격 동안 작업이 CPU 속도 제어 제한을 초과할 수 있는 범위를 지정합니다. 그렇지 않으면 이 멤버는 무시됩니다.

이 멤버는 다음 값 중 하나일 수 있습니다. 값을 지정하지 않으면 ToleranceHigh 가 사용됩니다.

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

DUMMYUNIONNAME2.CpuRateControlTolerance

LimitFlags 매개 변수가 JOB_OBJECT_LIMIT_CPU_RATE_CONTROL 지정하는 경우 이 멤버는 CpuRateControlToleranceInterval 멤버가 지정한 간격 동안 작업이 CPU 속도 제어 제한을 초과할 수 있는 범위를 지정합니다. 그렇지 않으면 이 멤버는 무시됩니다.

이 멤버는 다음 값 중 하나일 수 있습니다. 값을 지정하지 않으면 ToleranceHigh 가 사용됩니다.

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

DUMMYUNIONNAME3

DUMMYUNIONNAME3.RateControlToleranceInterval

LimitFlags 매개 변수가 JOB_OBJECT_LIMIT_RATE_CONTROL 지정하는 경우 이 멤버는 작업의 CPU 사용량이 모니터링되는 간격을 지정하여 작업이 CPU 속도 제어 제한을 초과했는지 여부를 확인합니다. 그렇지 않으면 이 멤버는 무시됩니다.

이 멤버는 다음 값 중 하나일 수 있습니다. 값을 지정하지 않으면 ToleranceIntervalShort 가 사용됩니다.

의미
ToleranceIntervalShort
1
허용 오차 간격은 10초입니다.
ToleranceIntervalMedium
2
허용 오차 간격은 1분입니다.
ToleranceIntervalLong
3
허용 오차 간격은 10분입니다.

DUMMYUNIONNAME3.CpuRateControlToleranceInterval

LimitFlags 매개 변수가 JOB_OBJECT_CPU_LIMIT_RATE_CONTROL 지정하는 경우 이 멤버는 작업의 CPU 사용량이 모니터링되는 간격을 지정하여 작업이 CPU 속도 제어 제한을 초과했는지 여부를 확인합니다. 그렇지 않으면 이 멤버는 무시됩니다.

이 멤버는 다음 값 중 하나일 수 있습니다. 값을 지정하지 않으면 ToleranceIntervalShort 가 사용됩니다.

의미
ToleranceIntervalShort
1
허용 오차 간격은 10초입니다.
ToleranceIntervalMedium
2
허용 오차 간격은 1분입니다.
ToleranceIntervalLong
3
허용 오차 간격은 10분입니다.

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 바이트의 작업 전체 합계에 대한 I/O 읽기 바이트 제한을 설정합니다. IoReadBytesLimit 멤버에는 자세한 정보가 포함되어 있습니다.
JOB_OBJECT_LIMIT_JOB_WRITE_BYTES
0x00020000
작업과 연결된 모든 프로세스에서 작성한 I/O 바이트의 작업 전체 합계에 대한 I/O 쓰기 바이트 제한을 설정합니다. IoWriteBytesLimit 멤버에는 자세한 정보가 포함되어 있습니다.
JOB_OBJECT_LIMIT_JOB_TIME
0x00000004
작업에 대한 사용자 모드 실행 시간에 대한 제한을 설정합니다. PerJobUserTimeLimit 멤버에는 추가 정보가 포함됩니다.
JOB_OBJECT_LIMIT_CPU_RATE_CONTROL
0x00040000
작업에 대해 설정된 CPU 속도 제어 제한에 대한 알림 임계값을 설정합니다. CpuRateControlToleranceCpuRateControlToleranceInterval 멤버에는 추가 정보가 포함됩니다.

CPU 속도 제어 제한은 JobObjectCpuRateInformationClass 정보 클래스를 사용하여 SetInformationJobObject를 호출하여 설정합니다.

JOB_OBJECT_LIMIT_RATE_CONTROL
0x00040000
작업에 대해 설정된 CPU 속도 제어 제한에 대한 알림 임계값을 설정합니다. RateControlToleranceRateControlToleranceInterval 멤버에는 추가 정보가 포함되어 있습니다.

CPU 속도 제어 제한은 JobObjectCpuRateInformationClass 정보 클래스를 사용하여 SetInformationJobObject를 호출하여 설정합니다.

JOB_OBJECT_LIMIT_IO_RATE_CONTROL
0x00080000
작업에 대해 설정된 I/O 속도 제어 제한에 대한 알림 임계값을 설정합니다. IoRateControlToleranceIoRateControlToleranceInterval 멤버에는 추가 정보가 포함되어 있습니다.

I/O 속도 제어 제한은 SetIoRateControlInformationJobObject를 호출하여 설정됩니다.

JOB_OBJECT_LIMIT_NET_RATE_CONTROL
0x00100000
작업에 대해 설정된 네트워크 속도 제어 제한에 대한 알림 임계값을 설정합니다. NetRateControlToleranceNetRateControlToleranceInterval 멤버에는 추가 정보가 포함되어 있습니다.

네트워크 속도 제어 제한은 JobObjectNetRateInformationClass 정보 클래스를 사용하여 SetInformationJobObject를 호출하여 설정합니다.

IoRateControlTolerance

LimitFlags 매개 변수가 JOB_OBJECT_LIMIT_IO_RATE_CONTROL 지정하는 경우 이 멤버는 IoRateControlToleranceInterval 멤버가 지정한 간격 동안 작업이 I/O 속도 제어 제한을 초과할 수 있는 범위를 지정합니다. 그렇지 않으면 이 멤버는 무시됩니다.

이 멤버는 다음 값 중 하나일 수 있습니다. 값을 지정하지 않으면 ToleranceHigh 가 사용됩니다.

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

JobLowMemoryLimit

LimitFlags 매개 변수가 JOB_OBJECT_LIMIT_JOB_MEMORY_LOW 지정하는 경우 이 멤버는 작업의 모든 프로세스(바이트)에서 커밋할 수 있는 총 가상 메모리에 대한 알림 제한 최소값입니다. 그렇지 않으면 이 멤버는 무시됩니다.

IoRateControlToleranceInterval

LimitFlags 매개 변수가 JOB_OBJECT_IO_LIMIT_RATE_CONTROL 지정하는 경우 이 멤버는 작업의 I/O 사용량이 모니터링되는 간격을 지정하여 작업이 I/O 속도 제어 제한을 초과했는지 여부를 확인합니다. 그렇지 않으면 이 멤버는 무시됩니다.

이 멤버는 다음 값 중 하나일 수 있습니다. 값을 지정하지 않으면 ToleranceIntervalShort 가 사용됩니다.

의미
ToleranceIntervalShort
1
허용 오차 간격은 10초입니다.
ToleranceIntervalMedium
2
허용 오차 간격은 1분입니다.
ToleranceIntervalLong
3
허용 오차 간격은 10분입니다.

NetRateControlTolerance

LimitFlags 매개 변수가 JOB_OBJECT_LIMIT_IO_RATE_CONTROL 지정하는 경우 이 멤버는 NetRateControlToleranceInterval 멤버가 지정한 간격 동안 작업이 네트워크 속도 제어 제한을 초과할 수 있는 범위를 지정합니다. 그렇지 않으면 이 멤버는 무시됩니다.

이 멤버는 다음 값 중 하나일 수 있습니다. 값을 지정하지 않으면 ToleranceHigh 가 사용됩니다.

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

NetRateControlToleranceInterval

LimitFlags 매개 변수가 JOB_OBJECT_NET_LIMIT_RATE_CONTROL 지정하는 경우 이 멤버는 작업의 네트워크 사용량이 모니터링되는 간격을 지정하여 작업이 네트워크 속도 제어 제한을 초과했는지 여부를 확인합니다. 그렇지 않으면 이 멤버는 무시됩니다.

이 멤버는 다음 값 중 하나일 수 있습니다. 값을 지정하지 않으면 ToleranceIntervalShort 가 사용됩니다.

의미
ToleranceIntervalShort
1
허용 오차 간격은 10초입니다.
ToleranceIntervalMedium
2
허용 오차 간격은 1분입니다.
ToleranceIntervalLong
3
허용 오차 간격은 10분입니다.

설명

알림 제한을 초과하면 시스템은 작업과 연결된 I/O 완료 포트에 JOB_OBJECT_MSG_NOTIFICATION_LIMIT 메시지를 보냅니다. 작업의 프로세스는 계속 실행되며 메모리를 계속 할당하거나 지정된 제한을 초과하여 읽기 또는 쓰기 바이트를 전송할 수 있습니다.

I/O 완료 포트를 모니터링하는 애플리케이션이 JOB_OBJECT_MSG_NOTIFICATION_LIMIT 메시지를 받으면 JobObjectLimitViolationInformation2 정보 클래스를 사용하여 QueryInformationJobObject를 호출해야 합니다. 제한 위반 정보는 쿼리 시 초과된 모든 알림 제한에 대한 정보를 포함하는 JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2 구조에서 수신됩니다. 시스템은 QueryInformationJobObject가 호출될 때까지 다른 JOB_OBJECT_MSG_NOTIFICATION_LIMIT 메시지를 보내지 않습니다.

작업에 대한 CPU 속도 제어 제한은 JOBOBJECT_CPU_RATE_CONTROL_INFORMATION 구조에서 설정됩니다. JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2 구조의 CPU 속도 제어 값은 알림이 전송되기 전에 작업이 설정된 CPU 속도 제어 제한을 초과할 수 있는 양을 지정합니다.

요구 사항

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

추가 정보

JOBOBJECT_CPU_RATE_CONTROL_INFORMATION

JOBOBJECT_IO_RATE_CONTROL_INFORMATION

JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2

JOBOBJECT_NET_RATE_CONTROL_INFORMATION

QueryInformationJobObject

SetInformationJobObject

SetIoRateControlInformationJobObject