JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2結構 (winnt.h)
包含作業物件已超過之資源通知限制的擴充資訊。 這個結構會搭配 QueryInformationJobObject 函式搭配 JobObjectLimitViolationInformation2 資訊類別使用。
語法
typedef struct JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2 {
DWORD LimitFlags;
DWORD ViolationLimitFlags;
DWORD64 IoReadBytes;
DWORD64 IoReadBytesLimit;
DWORD64 IoWriteBytes;
DWORD64 IoWriteBytesLimit;
LARGE_INTEGER PerJobUserTime;
LARGE_INTEGER PerJobUserTimeLimit;
DWORD64 JobMemory;
union {
DWORD64 JobHighMemoryLimit;
DWORD64 JobMemoryLimit;
} DUMMYUNIONNAME;
union {
JOBOBJECT_RATE_CONTROL_TOLERANCE RateControlTolerance;
JOBOBJECT_RATE_CONTROL_TOLERANCE CpuRateControlTolerance;
} DUMMYUNIONNAME2;
union {
JOBOBJECT_RATE_CONTROL_TOLERANCE RateControlToleranceLimit;
JOBOBJECT_RATE_CONTROL_TOLERANCE CpuRateControlToleranceLimit;
} DUMMYUNIONNAME3;
DWORD64 JobLowMemoryLimit;
JOBOBJECT_RATE_CONTROL_TOLERANCE IoRateControlTolerance;
JOBOBJECT_RATE_CONTROL_TOLERANCE IoRateControlToleranceLimit;
JOBOBJECT_RATE_CONTROL_TOLERANCE NetRateControlTolerance;
JOBOBJECT_RATE_CONTROL_TOLERANCE NetRateControlToleranceLimit;
} JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2;
成員
LimitFlags
旗標,識別作業生效的通知限制。 這個成員是位欄位元,可判斷是否使用其他結構成員。 這個成員可以是下列值的任何組合。
ViolationLimitFlags
識別已超過之通知限制的旗標。 這個成員是位欄位元,可判斷是否使用其他結構成員。 這個成員可以是下列值的任何組合。
IoReadBytes
如果 ViolationLimitFlags 成員指定 JOB_OBJECT_LIMIT_JOB_READ_BYTES,此成員會在傳送通知時包含作業中所有進程的 I/O 讀取位元組總數。
IoReadBytesLimit
如果 LimitFlags 成員指定 JOB_OBJECT_LIMIT_JOB_READ_BYTES,此成員會包含作業生效的 I/O 讀取位元組通知限制。
IoWriteBytes
如果 ViolationLimitFlags 成員指定 JOB_OBJECT_LIMIT_JOB_WRITE_BYTES,此成員會在傳送通知時包含作業中所有進程的 I/O 寫入位元組總數。
IoWriteBytesLimit
如果 LimitFlags 成員指定 JOB_OBJECT_LIMIT_JOB_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_HIGH 或 JOB_OBJECT_LIMIT_JOB_MEMORY_LOW,此成員會在傳送通知時包含作業中所有進程的已認可記憶體。
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,此成員會指定作業在傳送通知時超過其 CPU 速率控制限制的範圍。 這個成員可以是下列其中一個值。
值 | 意義 |
---|---|
|
作業超過其 20% 容錯間隔的 CPU 速率控制限制。 |
|
作業超過其 40% 容錯間隔的 CPU 速率控制限制。 |
|
作業超過其 60% 容錯間隔的 CPU 速率控制限制。 |
DUMMYUNIONNAME2.CpuRateControlTolerance
如果 LimitFlags 成員指定 JOB_OBJECT_LIMIT_CPU_RATE_CONTROL,此成員會指定作業在傳送通知時超過其 CPU 速率控制限制的範圍。 這個成員可以是下列其中一個值。
值 | 意義 |
---|---|
|
作業超過其 20% 容錯間隔的 CPU 速率控制限制。 |
|
作業超過其 40% 容錯間隔的 CPU 速率控制限制。 |
|
作業超過其 60% 容錯間隔的 CPU 速率控制限制。 |
DUMMYUNIONNAME3
DUMMYUNIONNAME3.RateControlToleranceLimit
如果 LimitFlags 成員指定 JOB_OBJECT_LIMIT_RATE_CONTROL,此成員會包含為作業指定的 CPU 速率控制通知限制。
值 | 意義 |
---|---|
|
作業可以超過其 20% 容錯間隔的 CPU 速率控制限制。 |
|
作業可以超過其 40% 容錯間隔的 CPU 速率控制限制。 |
|
作業可以超過其 60% 容錯間隔的 CPU 速率控制限制。 |
DUMMYUNIONNAME3.CpuRateControlToleranceLimit
如果 LimitFlags 參數指定 JOB_OBJECT_LIMIT_CPU_RATE_CONTROL,此成員會包含為作業指定的 CPU 速率控制通知限制。
值 | 意義 |
---|---|
|
作業可以超過其 20% 容錯間隔的 CPU 速率控制限制。 |
|
作業可以超過其 40% 容錯間隔的 CPU 速率控制限制。 |
|
作業可以超過其 60% 容錯間隔的 CPU 速率控制限制。 |
JobLowMemoryLimit
如果 LimitFlags 成員指定 JOB_OBJECT_LIMIT_JOB_MEMORY_LOW,這個成員會包含作業作用中認可的最小記憶體限制。
IoRateControlTolerance
如果 LimitFlags 成員指定 JOB_OBJECT_LIMIT_IO_RATE_CONTROL,此成員會指定作業在傳送通知時超過其 I/O 速率控制限制的範圍。 這個成員可以是下列其中一個值。
值 | 意義 |
---|---|
|
作業超過其 20% 容錯間隔的 I/O 速率控制限制。 |
|
作業超過其 40% 容錯間隔的 I/O 速率控制限制。 |
|
作業超過其 60% 容錯間隔的 I/O 速率控制限制。 |
IoRateControlToleranceLimit
如果 LimitFlags 參數指定 JOB_OBJECT_LIMIT_IO_RATE_CONTROL,此成員會包含為作業指定的 I/O 速率控制通知限制。
值 | 意義 |
---|---|
|
作業可以超過其 20% 容錯間隔的 I/O 速率控制限制。 |
|
作業可以超過其 40% 容錯間隔的 I/O 速率控制限制。 |
|
作業可以超過其 60% 容錯間隔的 I/O 速率控制限制。 |
NetRateControlTolerance
如果 LimitFlags 成員指定 JOB_OBJECT_LIMIT_NET_RATE_CONTROL,此成員會指定作業在傳送通知時超過其網路速率控制限制的範圍。 這個成員可以是下列其中一個值。
值 | 意義 |
---|---|
|
作業超過其 20% 容錯間隔的網路速率控制限制。 |
|
作業超過其 40% 容錯間隔的網路速率控制限制。 |
|
作業超過其 60% 容錯間隔的網路速率控制限制。 |
NetRateControlToleranceLimit
如果 LimitFlags 參數指定 JOB_OBJECT_LIMIT_NETWORK_RATE_CONTROL,此成員會包含為作業指定的網路速率控制通知限制。
值 | 意義 |
---|---|
|
作業可以超過其 20% 容錯間隔的網路速率控制限制。 |
|
作業可以超過其 40% 容錯間隔的網路速率控制限制。 |
|
作業可以超過其 60% 容錯間隔的網路速率控制限制。 |
備註
當超過 JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2 結構中指定的任何通知限制時,系統會將 JOB_OBJECT_MSG_NOTIFICATION_LIMIT 訊息傳送至與作業相關聯的 I/O 完成埠。
若要擷取超過限制的相關信息,監視 I/O 完成埠的應用程式必須使用 JobObjectLimitViolationInformation2 資訊類別和JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2結構的指標呼叫 QueryInformationJobObject 函式。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 10 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2016 [僅限傳統型應用程式] |
標頭 | winnt.h |