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

旗標,識別作業生效的通知限制。 這個成員是位欄位元,可判斷是否使用其他結構成員。 這個成員可以是下列值的任何組合。

意義
JOB_OBJECT_LIMIT_JOB_MEMORY_HIGH
0x00000200
作業具有認可的記憶體通知限制。 JobHighMemoryLimit 成員包含詳細資訊。
JOB_OBJECT_LIMIT_JOB_MEMORY_LOW
0x00008000
作業具有認可的最小記憶體通知限制。 JobLowMemoryLimit 成員包含詳細資訊。
JOB_OBJECT_LIMIT_JOB_READ_BYTES
0x00010000
作業具有 I/O 讀取位元組通知限制。 IoReadBytesLimit 成員包含詳細資訊。
JOB_OBJECT_LIMIT_JOB_WRITE_BYTES
0x00020000
作業具有 I/O 寫入位元組通知限制。 IoWriteBytesLimit 成員包含詳細資訊。
JOB_OBJECT_LIMIT_JOB_TIME
0x00000004
作業具有使用者模式運行時間通知限制。 PerJobUserTimeLimit 成員包含詳細資訊。
JOB_OBJECT_LIMIT_RATE_CONTROL
0x00040000
作業具有作業可超過其CPU速率控制限制的範圍通知限制。 RateControlToleranceLimit 成員包含詳細資訊。
JOB_OBJECT_LIMIT_CPU_RATE_CONTROL
0x00040000
作業具有作業可超過其CPU速率控制限制的範圍通知限制。 CpuRateControlToleranceLimit 成員包含詳細資訊。
JOB_OBJECT_LIMIT_IO_RATE_CONTROL
0x00080000
作業具有作業可超過其 I/O 速率控制限制的範圍通知限制。 IoRateControlToleranceLimit 成員包含詳細資訊。
JOB_OBJECT_LIMIT_NET_RATE_CONTROL
0x00100000
作業具有作業可超過其網路速率控制限制的範圍通知限制。 NetRateControlToleranceLimit 成員包含詳細資訊。

ViolationLimitFlags

識別已超過之通知限制的旗標。 這個成員是位欄位元,可判斷是否使用其他結構成員。 這個成員可以是下列值的任何組合。

意義
JOB_OBJECT_LIMIT_JOB_READ_BYTES
0x00010000
已超過作業的 I/O 讀取位元組通知限制。 IoReadBytes 成員包含詳細資訊。
JOB_OBJECT_LIMIT_JOB_WRITE_BYTES
0x00020000
已超過作業的 I/O 寫入位元組通知限制。 IoWriteBytes 成員包含詳細資訊。
JOB_OBJECT_LIMIT_JOB_TIME
0x00000004
已超過作業的使用者模式運行時間通知限制。 PerJobUserTime 成員包含詳細資訊。
JOB_OBJECT_LIMIT_JOB_MEMORY_HIGH
0x00000200
已超過作業的認可最大記憶體通知限制。 JobMemory 成員包含詳細資訊。
JOB_OBJECT_LIMIT_JOB_MEMORY_LOW
0x00008000
作業的認可記憶體已低於其最低通知限制。 JobMemory 成員包含詳細資訊。
JOB_OBJECT_LIMIT_RATE_CONTROL
0x00040000
已超過作業的CPU速率控制限制。 RateControlTolerance 成員包含詳細資訊。
JOB_OBJECT_LIMIT_CPU_RATE_CONTROL
0x00040000
已超過作業的CPU速率控制限制。 CpuRateControlTolerance 成員包含詳細資訊。
JOB_OBJECT_LIMIT_IO_RATE_CONTROL
0x00080000
已超過作業的 I/O 速率控制限制。 IoRateControlTolerance 成員包含詳細資訊。
JOB_OBJECT_LIMIT_NET_RATE_CONTROL
0x00100000
已超過作業的網路速率控制限制。 NetworkRateControlTolerance 成員包含詳細資訊。

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_HIGHJOB_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 速率控制限制的範圍。 這個成員可以是下列其中一個值。

意義
ToleranceLow
1
作業超過其 20% 容錯間隔的 CPU 速率控制限制。
ToleranceMedium
2
作業超過其 40% 容錯間隔的 CPU 速率控制限制。
ToleranceHigh
3
作業超過其 60% 容錯間隔的 CPU 速率控制限制。

DUMMYUNIONNAME2.CpuRateControlTolerance

如果 LimitFlags 成員指定 JOB_OBJECT_LIMIT_CPU_RATE_CONTROL,此成員會指定作業在傳送通知時超過其 CPU 速率控制限制的範圍。 這個成員可以是下列其中一個值。

意義
ToleranceLow
1
作業超過其 20% 容錯間隔的 CPU 速率控制限制。
ToleranceMedium
2
作業超過其 40% 容錯間隔的 CPU 速率控制限制。
ToleranceHigh
3
作業超過其 60% 容錯間隔的 CPU 速率控制限制。

DUMMYUNIONNAME3

DUMMYUNIONNAME3.RateControlToleranceLimit

如果 LimitFlags 成員指定 JOB_OBJECT_LIMIT_RATE_CONTROL,此成員會包含為作業指定的 CPU 速率控制通知限制。

意義
ToleranceLow
1
作業可以超過其 20% 容錯間隔的 CPU 速率控制限制。
ToleranceMedium
2
作業可以超過其 40% 容錯間隔的 CPU 速率控制限制。
ToleranceHigh
3
作業可以超過其 60% 容錯間隔的 CPU 速率控制限制。

DUMMYUNIONNAME3.CpuRateControlToleranceLimit

如果 LimitFlags 參數指定 JOB_OBJECT_LIMIT_CPU_RATE_CONTROL,此成員會包含為作業指定的 CPU 速率控制通知限制。

意義
ToleranceLow
1
作業可以超過其 20% 容錯間隔的 CPU 速率控制限制。
ToleranceMedium
2
作業可以超過其 40% 容錯間隔的 CPU 速率控制限制。
ToleranceHigh
3
作業可以超過其 60% 容錯間隔的 CPU 速率控制限制。

JobLowMemoryLimit

如果 LimitFlags 成員指定 JOB_OBJECT_LIMIT_JOB_MEMORY_LOW,這個成員會包含作業作用中認可的最小記憶體限制。

IoRateControlTolerance

如果 LimitFlags 成員指定 JOB_OBJECT_LIMIT_IO_RATE_CONTROL,此成員會指定作業在傳送通知時超過其 I/O 速率控制限制的範圍。 這個成員可以是下列其中一個值。

意義
ToleranceLow
1
作業超過其 20% 容錯間隔的 I/O 速率控制限制。
ToleranceMedium
2
作業超過其 40% 容錯間隔的 I/O 速率控制限制。
ToleranceHigh
3
作業超過其 60% 容錯間隔的 I/O 速率控制限制。

IoRateControlToleranceLimit

如果 LimitFlags 參數指定 JOB_OBJECT_LIMIT_IO_RATE_CONTROL,此成員會包含為作業指定的 I/O 速率控制通知限制。

意義
ToleranceLow
1
作業可以超過其 20% 容錯間隔的 I/O 速率控制限制。
ToleranceMedium
2
作業可以超過其 40% 容錯間隔的 I/O 速率控制限制。
ToleranceHigh
3
作業可以超過其 60% 容錯間隔的 I/O 速率控制限制。

NetRateControlTolerance

如果 LimitFlags 成員指定 JOB_OBJECT_LIMIT_NET_RATE_CONTROL,此成員會指定作業在傳送通知時超過其網路速率控制限制的範圍。 這個成員可以是下列其中一個值。

意義
ToleranceLow
1
作業超過其 20% 容錯間隔的網路速率控制限制。
ToleranceMedium
2
作業超過其 40% 容錯間隔的網路速率控制限制。
ToleranceHigh
3
作業超過其 60% 容錯間隔的網路速率控制限制。

NetRateControlToleranceLimit

如果 LimitFlags 參數指定 JOB_OBJECT_LIMIT_NETWORK_RATE_CONTROL,此成員會包含為作業指定的網路速率控制通知限制。

意義
ToleranceLow
1
作業可以超過其 20% 容錯間隔的網路速率控制限制。
ToleranceMedium
2
作業可以超過其 40% 容錯間隔的網路速率控制限制。
ToleranceHigh
3
作業可以超過其 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

另請參閱

JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2

QueryInformationJobObject

SetInformationJobObject