다음을 통해 공유


JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION 구조체(winnt.h)

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

구문

typedef struct _JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION {
  DWORD64                                   IoReadBytesLimit;
  DWORD64                                   IoWriteBytesLimit;
  LARGE_INTEGER                             PerJobUserTimeLimit;
  DWORD64                                   JobMemoryLimit;
  JOBOBJECT_RATE_CONTROL_TOLERANCE          RateControlTolerance;
  JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL RateControlToleranceInterval;
  DWORD                                     LimitFlags;
} JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION, *PJOBOBJECT_NOTIFICATION_LIMIT_INFORMATION;

멤버

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 구조를 참조하세요.

JobMemoryLimit

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

JobMemoryLimit을 적용 가능한 제한으로 지정하고 제한을 초과하는 작업의 프로세스가 메모리 커밋을 계속하지 못하도록 하려면 JOBOBJECT_EXTENDED_LIMIT_INFORMATION 구조를 참조하세요.

RateControlTolerance

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

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

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

RateControlToleranceInterval

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

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

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

LimitFlags

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

의미
JOB_OBJECT_LIMIT_JOB_MEMORY
0x00000200
커밋된 메모리 제한을 작업과 연결된 모든 프로세스에 대해 커밋된 메모리의 작업 전체 합계로 설정합니다. JobMemoryLimit 멤버에는 추가 정보가 포함되어 있습니다.
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_RATE_CONTROL
0x00040000
작업에 대해 설정된 CPU 속도 제어 제한에 대한 알림 임계값을 설정합니다. RateControlToleranceRateControlToleranceInterval 멤버에는 추가 정보가 포함되어 있습니다.

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

설명

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

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

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

요구 사항

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

추가 정보

JOBOBJECT_CPU_RATE_CONTROL_INFORMATION

JOBOBJECT_LIMIT_VIOLATION_INFORMATION

QueryInformationJobObject

SetInformationJobObject