JOBOBJECT_CPU_RATE_CONTROL_INFORMATION 構造体 (winnt.h)
ジョブ オブジェクトの CPU レート制御情報を格納します。 この構造体は、 SetInformationJobObject 関数と QueryInformationJobObject 関数と JobObjectCpuRateControlInformation 情報クラスで使用されます。
構文
typedef struct _JOBOBJECT_CPU_RATE_CONTROL_INFORMATION {
DWORD ControlFlags;
union {
DWORD CpuRate;
DWORD Weight;
struct {
WORD MinRate;
WORD MaxRate;
} DUMMYSTRUCTNAME;
} DUMMYUNIONNAME;
} JOBOBJECT_CPU_RATE_CONTROL_INFORMATION, *PJOBOBJECT_CPU_RATE_CONTROL_INFORMATION;
メンバー
ControlFlags
CPU レート制御のスケジュール ポリシー。 このメンバーには、次のいずれかの値を指定できます。
DUMMYUNIONNAME
DUMMYUNIONNAME.CpuRate
10,000 サイクルあたりのサイクル数として、ジョブ オブジェクト内のスレッドがスケジュール間隔ごとに使用できるプロセッサ サイクルの部分を指定します。 ControlFlags メンバーがJOB_OBJECT_CPU_RATE_WEIGHT_BASEDまたはJOB_OBJECT_CPU_RATE_CONTROL_MIN_MAX_RATEを指定している場合、このメンバーは使用されません。
CpuRate を 100 の割合に設定します。 たとえば、ジョブで CPU の 20% を使用できるようにするには、 CpuRate を 100 倍または 2,000 回に設定します。
CpuRate を 0 に設定しないでください。 CpuRate が 0 の場合、SetInformationJobObject はINVALID_ARGSを返します。
DUMMYUNIONNAME.Weight
ControlFlags メンバーがJOB_OBJECT_CPU_RATE_WEIGHT_BASEDを指定する場合、このメンバーはジョブ オブジェクトのスケジュールの重みを指定します。これにより、プロセッサ上の他のワークロードに対するジョブに対するプロセッサ時間の共有が決定されます。
このメンバーには、1 から 9 までの値を指定できます。ここで、1 は最小の共有、9 は最大の共有です。 既定値は 5 で、ほとんどのワークロードに使用する必要があります。
ControlFlags メンバーがJOB_OBJECT_CPU_RATE_CONTROL_MIN_MAX_RATEを指定している場合、このメンバーは使用されません。
DUMMYUNIONNAME.DUMMYSTRUCTNAME
DUMMYUNIONNAME.DUMMYSTRUCTNAME.MinRate
ジョブ・オブジェクト内のスレッドがスケジューリング間隔ごとに予約できるプロセッサー・サイクルの最小部分を指定します。 この率を 100 の割合として指定します。 たとえば、最小レートを 50% に設定するには、50 回 100 または 5,000 を指定します。
最小レートが正しく機能するためには、システム内のすべてのジョブ オブジェクトの最小レートの合計が 10,000 を超えることはできません。これは 100% に相当します。
DUMMYUNIONNAME.DUMMYSTRUCTNAME.MaxRate
ジョブ・オブジェクト内のスレッドがスケジューリング間隔ごとに使用できるプロセッサー・サイクルの最大部分を指定します。 この率を 100 の割合として指定します。 たとえば、最大レートを 50% に設定するには、100 回 50 回または 5,000 回を指定します。
ジョブがスケジュール間隔のこの制限に達すると、次のスケジュール間隔までジョブに関連付けられているスレッドは実行できません。
注釈
入れ子になったジョブの階層内の複数のジョブに対して CPU レート制御を設定できます。 ジョブ オブジェクトの CPU レート制御を設定すると、階層内のジョブとその子ジョブに設定が適用されます。 入れ子になった階層内のジョブに対して CPU レート制御を設定すると、システムは、ジョブの直接親ジョブの CPU レート制御に関して対応するクォータを計算します。 言い換えると、ジョブに設定されたレートは、親ジョブに割り当てられる CPU レートの部分を表します。 ジョブ オブジェクトの親ジョブのチェーンで CPU レート制御が有効になっている親がない場合、ジョブのレート制御はシステム全体の CPU の部分を表します。
動的公平共有スケジューリング (DFSS) が有効な場合、 リモート デスクトップ サービス (旧称ターミナル サービス) で実行されているアプリケーションのジョブ オブジェクトで CPU レート制御を使用することはできません。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 8 [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2012 [デスクトップ アプリのみ] |
Header | winnt.h |