SetInformationJobObject 関数 (jobapi2.h)

ジョブ オブジェクトの制限を設定します。

構文

BOOL SetInformationJobObject(
  [in] HANDLE             hJob,
  [in] JOBOBJECTINFOCLASS JobObjectInformationClass,
  [in] LPVOID             lpJobObjectInformation,
  [in] DWORD              cbJobObjectInformationLength
);

パラメーター

[in] hJob

制限が設定されているジョブのハンドル。 CreateJobObject または OpenJobObject 関数は、このハンドルを返します。 ハンドルには、 JOB_OBJECT_SET_ATTRIBUTES アクセス権が必要です。 詳細については、「 ジョブ オブジェクトのセキュリティとアクセス権」を参照してください。

[in] JobObjectInformationClass

設定する制限の情報クラス。 このパラメーターには、次の値のいずれかを指定できます。

意味
JobObjectAssociateCompletionPortInformation
7
lpJobObjectInfo パラメーターは、JOBOBJECT_ASSOCIATE_COMPLETION_PORT構造体へのポインターです。
JobObjectBasicLimitInformation
2
lpJobObjectInfo パラメーターは、JOBOBJECT_BASIC_LIMIT_INFORMATION構造体へのポインターです。
JobObjectBasicUIRestrictions
4
lpJobObjectInfo パラメーターは、JOBOBJECT_BASIC_UI_RESTRICTIONS構造体へのポインターです。
JobObjectCpuRateControlInformation
15
lpJobObjectInfo パラメーターは、JOBOBJECT_CPU_RATE_CONTROL_INFORMATION構造体へのポインターです。

Windows 7、Windows Server 2008 R2、Windows Server 2008、Windows Vista、Windows Server 2003、Windows XP: このフラグはサポートされていません。

Dynamic Fair Share Scheduling (DFSS) が有効になっている場合、CPU レートを設定できず、SetInformationJobObject はエラー コード 50 ("要求はサポートされていません") で失敗します。

JobObjectEndOfJobTimeInformation
6
lpJobObjectInfo パラメーターは、JOBOBJECT_END_OF_JOB_TIME_INFORMATION構造体へのポインターです。
JobObjectExtendedLimitInformation
9
lpJobObjectInfo パラメーターは、JOBOBJECT_EXTENDED_LIMIT_INFORMATION構造体へのポインターです。
JobObjectGroupInformation
11
lpJobObjectInfo パラメーターは、ジョブを割り当てるプロセッサ グループの一覧を指定する USHORT 値へのポインターです。 cbJobObjectInfoLength パラメーターは、グループ データのサイズに設定されます。 この値を で sizeof(USHORT) 除算して、グループの数を決定します。

Windows Server 2008、Windows Vista、Windows Server 2003、Windows XP: このフラグはサポートされていません。

JobObjectGroupInformationEx
14
lpJobObjectInfo パラメーターは、ジョブが現在割り当てられているプロセッサ グループのジョブのアフィニティを指定するGROUP_AFFINITY構造体の配列を含むバッファーへのポインターです。 cbJobObjectInfoLength パラメーターは、グループ アフィニティ データのサイズに設定されます。 この値を で sizeof(GROUP_AFFINITY) 除算して、グループの数を決定します。

Windows 7、Windows Server 2008 R2、Windows Server 2008、Windows Vista、Windows Server 2003、Windows XP: このフラグはサポートされていません。

JobObjectLimitViolationInformation2
34
lpJobObjectInfo パラメーターは、JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2構造体へのポインターです。

Windows 8.1、Windows Server 2012 R2、Windows 8、Windows Server 2012、Windows 7、Windows Server 2008 R2、Windows Server 2008、Windows Vista、Windows Server 2003、Windows XP: このフラグはサポートされていません。

JobObjectNetRateControlInformation
32
lpJobObjectInfo パラメーターは、JOBOBJECT_NET_RATE_CONTROL_INFORMATION構造体へのポインターです。

Windows 8.1、Windows Server 2012 R2、Windows 8、Windows Server 2012、Windows 7、Windows Server 2008 R2、Windows Server 2008、Windows Vista、Windows Server 2003、Windows XP: このフラグはサポートされていません。

JobObjectNotificationLimitInformation
12
lpJobObjectInfo パラメーターは、JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION構造体へのポインターです。

Windows 7、Windows Server 2008 R2、Windows Server 2008、Windows Vista、Windows Server 2003、Windows XP: このフラグはサポートされていません。

JobObjectNotificationLimitInformation2
33
lpJobObjectInfo パラメーターは、JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2構造体へのポインターです。

Windows 8.1、Windows Server 2012 R2、Windows 8、Windows Server 2012、Windows 7、Windows Server 2008 R2、Windows Server 2008、Windows Vista、Windows Server 2003、Windows XP: このフラグはサポートされていません。

JobObjectSecurityLimitInformation
5
このフラグはサポートされていません。 アプリケーションでは、プロセスごとにセキュリティ制限を個別に設定する必要があります。

Windows Server 2003 および Windows XP: lpJobObjectInfo パラメーターは、JOBOBJECT_SECURITY_LIMIT_INFORMATION構造体へのポインターです。 hJob ハンドルには、JOB_OBJECT_SET_SECURITY_ATTRIBUTESアクセス権が関連付けられている必要があります。

[in] lpJobObjectInformation

ジョブに設定する制限またはジョブの状態。 このデータの形式は 、JobObjectInfoClass の値によって異なります。

[in] cbJobObjectInformationLength

設定されているジョブ情報のサイズ (バイト単位)。

戻り値

関数が成功すると、戻り値は 0 以外になります。

関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。

解説

SetInformationJobObject 関数を使用して、1 回の呼び出しで複数の制限を設定します。 制限を一度に 1 つずつ確立するか、制限のサブセットを変更するには、 QueryInformationJobObject 関数を呼び出して現在の制限を取得し、これらの制限を変更してから 、SetInformationJobObject を呼び出します。

セキュリティ制限は、ジョブ オブジェクト自体に設定するのではなく、ジョブ オブジェクトに関連付けられているプロセスごとに個別に設定する必要があります。 詳細については、「 セキュリティとアクセス権の処理」を参照してください。

Windows Server 2003 および Windows XP: SetInformationJobObject 関数を使用して、ジョブ オブジェクトのセキュリティ制限を設定します。

この関数を使用するアプリケーションをコンパイルするには、_WIN32_WINNTを 0x0500 以降として定義します。 詳細については、「 Windows ヘッダーの使用」を参照してください。

要件

要件
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー jobapi2.h (Windows.h を含む)
Library Kernel32.lib
[DLL] Kernel32.dll

関連項目

JOBOBJECT_ASSOCIATE_COMPLETION_PORT

JOBOBJECT_BASIC_LIMIT_INFORMATION

JOBOBJECT_BASIC_UI_RESTRICTIONS

JOBOBJECT_CPU_RATE_CONTROL_INFORMATION

JOBOBJECT_END_OF_JOB_TIME_INFORMATION

JOBOBJECT_EXTENDED_LIMIT_INFORMATION

JOBOBJECT_LIMIT_VIOLATION_INFORMATION

JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2

JOBOBJECT_NET_RATE_CONTROL_INFORMATION

JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION

JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2

JOBOBJECT_SECURITY_LIMIT_INFORMATION

ジョブ オブジェクト

セキュリティとアクセス権の処理

プロセス関数とスレッド関数

QueryInformationJobObject