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_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 レート制御の制限を超えたエクステントを指定します。 このメンバーには、次のいずれかの値を指定できます。

意味
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構造体で指定された通知制限を超えると、システムはジョブに関連付けられている I/O 完了ポートにJOB_OBJECT_MSG_NOTIFICATION_LIMITメッセージを送信します。

超過した制限に関する情報を取得するには、I/O 完了ポートを監視するアプリケーションは、JobObjectLimitViolationInformation2 情報クラスと、JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2構造体へのポインターを使用して QueryInformationJobObject 関数を呼び出す必要があります。

要件

要件
サポートされている最小のクライアント Windows 10 [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2016 [デスクトップ アプリのみ]
Header winnt.h

こちらもご覧ください

JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2

QueryInformationJobObject

SetInformationJobObject