JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION 구조체(winnt.h)
작업 개체에 대한 알림 제한에 대한 정보를 포함합니다. 이 구조체는 JobObjectNotificationLimitInformation 정보 클래스와 함께 SetInformationJobObject 및 QueryInformationJobObject 함수에서 사용됩니다.
구문
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 가 사용됩니다.
값 | 의미 |
---|---|
|
작업은 허용 오차 간격의 20%에 대한 CPU 속도 제어 제한을 초과할 수 있습니다. |
|
작업은 허용 오차 간격의 40%에 대한 CPU 속도 제어 제한을 초과할 수 있습니다. |
|
작업은 허용 오차 간격의 60%에 대한 CPU 속도 제어 제한을 초과할 수 있습니다. |
RateControlToleranceInterval
LimitFlags 매개 변수가 JOB_OBJECT_LIMIT_RATE_CONTROL 지정하는 경우 이 멤버는 작업의 CPU 사용량이 모니터링되는 간격을 지정하여 작업이 CPU 속도 제어 제한을 초과했는지 여부를 확인합니다. 그렇지 않으면 이 멤버는 무시됩니다.
이 멤버는 다음 값 중 하나일 수 있습니다. 값을 지정하지 않으면 ToleranceIntervalShort 가 사용됩니다.
값 | 의미 |
---|---|
|
허용 오차 간격은 10초입니다. |
|
허용 오차 간격은 1분입니다. |
|
허용 오차 간격은 10분입니다. |
LimitFlags
적용되는 제한 플래그입니다. 이 멤버는 다른 구조체 멤버가 사용되는지 여부를 결정하는 비트 필드입니다. 다음 값의 조합을 지정할 수 있습니다.
값 | 의미 |
---|---|
|
커밋된 메모리 제한을 작업과 연결된 모든 프로세스에 대해 커밋된 메모리의 작업 전체 합계로 설정합니다. JobMemoryLimit 멤버에는 추가 정보가 포함되어 있습니다. |
|
작업과 연결된 모든 프로세스에서 읽은 I/O 바이트의 작업 전체 합계에 대한 I/O 읽기 바이트 제한을 설정합니다. IoReadBytesLimit 멤버에는 자세한 정보가 포함되어 있습니다. |
|
작업과 연결된 모든 프로세스에서 작성한 I/O 바이트의 작업 전체 합계에 대한 I/O 쓰기 바이트 제한을 설정합니다. IoWriteBytesLimit 멤버에는 자세한 정보가 포함되어 있습니다. |
|
작업에 대한 사용자 모드 실행 시간에 대한 제한을 설정합니다. PerJobUserTimeLimit 멤버에는 추가 정보가 포함됩니다. |
|
작업에 대해 설정된 CPU 속도 제어 제한에 대한 알림 임계값을 설정합니다. RateControlTolerance 및 RateControlToleranceInterval 멤버에는 추가 정보가 포함되어 있습니다.
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