다음을 통해 공유


JOBOBJECT_LIMIT_VIOLATION_INFORMATION 구조체(winnt.h)

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

구문

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;

멤버

LimitFlags

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

의미
JOB_OBJECT_LIMIT_JOB_MEMORY
0x00000200
작업에 커밋된 메모리 알림 제한이 있습니다. JobMemoryLimit 멤버에 자세한 정보가 포함되어 있습니다.
JOB_OBJECT_LIMIT_JOB_READ_BYTES
0x00010000
작업에 I/O 읽기 바이트 알림 제한이 있습니다. IoReadBytesLimit 멤버에는 자세한 정보가 포함되어 있습니다.
JOB_OBJECT_LIMIT_JOB_TIME
0x00000004
작업에는 사용자 모드 실행 시간 알림 제한이 있습니다. PerJobUserTimeLimit 멤버에 자세한 정보가 포함되어 있습니다.
JOB_OBJECT_LIMIT_JOB_WRITE_BYTES
0x00020000
작업에 I/O 쓰기 바이트 알림 제한이 있습니다. IoWriteBytesLimit 멤버에는 자세한 정보가 포함되어 있습니다.
JOB_OBJECT_LIMIT_RATE_CONTROL
0x00040000
작업이 CPU 속도 제어 제한을 초과할 수 있는 범위입니다. RateControlToleranceLimit 멤버에 자세한 정보가 포함되어 있습니다.

ViolationLimitFlags

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

의미
JOB_OBJECT_LIMIT_READ_BYTES
0x00010000
작업의 I/O 읽기 바이트 알림 제한이 초과되었습니다. IoReadBytes 멤버에는 자세한 정보가 포함되어 있습니다.
JOB_OBJECT_LIMIT_WRITE_BYTES
0x00020000
작업의 I/O 쓰기 바이트 알림 제한이 초과되었습니다. IoWriteBytes 멤버에는 자세한 정보가 포함되어 있습니다.
JOB_OBJECT_LIMIT_JOB_TIME
0x00000004
작업의 사용자 모드 실행 시간 알림 제한을 초과했습니다. PerJobUserTime 멤버에 자세한 정보가 포함되어 있습니다.
JOB_OBJECT_LIMIT_JOB_MEMORY
0x00000200
작업의 커밋된 메모리 알림 제한을 초과했습니다. JobMemory 멤버에 자세한 정보가 포함되어 있습니다.
JOB_OBJECT_LIMIT_RATE_CONTROL
0x00040000
작업의 CPU 속도 제어 제한을 초과했습니다. RateControlTolerance 멤버에 자세한 정보가 포함되어 있습니다.

IoReadBytes

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

IoReadBytesLimit

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

IoWriteBytes

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

IoWriteBytesLimit

LimitFlags 멤버가 JOB_OBJECT_LIMIT_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 지정하는 경우 이 멤버는 알림을 보낼 때 작업의 모든 프로세스에 대해 커밋된 메모리를 포함합니다.

JobMemoryLimit

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

RateControlTolerance

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

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

RateControlToleranceLimit

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

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

설명

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

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

요구 사항

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

추가 정보

QueryInformationJobObject

SetInformationJobObject