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 [デスクトップ アプリのみ]
Header winnt.h

こちらもご覧ください

QueryInformationJobObject

SetInformationJobObject