JOBOBJECT_LIMIT_VIOLATION_INFORMATION結構 (winnt.h)

包含作業物件已超過之資源通知限制的相關信息。 此結構會與 QueryInformationJobObject 函式搭配 JobObjectLimitViolationInformation 資訊 類別使用。

語法

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
容錯間隔為一分鐘。
ToleranceIntervalLong
3
容錯間隔為10分鐘。

備註

當超過JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION結構中指定的任何通知限制時,系統會將JOB_OBJECT_MSG_NOTIFICATION_LIMIT訊息傳送至與作業相關聯的 I/O 完成埠。

若要擷取超過限制的相關信息,監視 I/O 完成埠的應用程式必須使用 JobObjectLimitViolationInformation 資訊類別和JOBOBJECT_LIMIT_VIOLATION_INFORMATION結構的指標呼叫 QueryInformationJobObject 函式。

規格需求

需求
最低支援的用戶端 Windows 8 [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2012 [僅限傳統型應用程式]
標頭 winnt.h

另請參閱

QueryInformationJobObject

SetInformationJobObject