CreateJobObjectA 関数 (winbase.h)
ジョブ オブジェクトを作成または開きます。
構文
HANDLE CreateJobObjectA(
[in, optional] LPSECURITY_ATTRIBUTES lpJobAttributes,
[in, optional] LPCSTR lpName
);
パラメーター
[in, optional] lpJobAttributes
ジョブ オブジェクトのセキュリティ記述子を指定し、子プロセスが返されたハンドルを継承できるかどうかを判断する SECURITY_ATTRIBUTES 構造体へのポインター。 lpJobAttributes
[in, optional] lpName
ジョブの名前。 名前は MAX_PATH 文字に制限されています。 名前の比較では、大文字と小文字が区別されます。
lpName
lpName
オブジェクトはプライベート名前空間に作成できます。 詳細については、「オブジェクト名前空間の」を参照してください。
ターミナル サービス: 名前には、グローバル名前空間またはセッション名前空間にオブジェクトを明示的に作成するための "グローバル" または "ローカル" プレフィックスを付けることができます。 名前の残りの部分には、円記号 (\) を除く任意の文字を含めることができます。 詳細については、「カーネル オブジェクト名前空間
戻り値
関数が成功した場合、戻り値はジョブ オブジェクトへのハンドルです。 ハンドルには、JOB_OBJECT_ALL_ACCESS アクセス権があります。 関数呼び出しの前にオブジェクトが存在していた場合、関数は既存のジョブ オブジェクトへのハンドルを返し、GetLastError は ERROR_ALREADY_EXISTSを返します。
関数が失敗した場合、戻り値は NULL です。 拡張エラー情報を取得するには、GetLastError
備考
ジョブが作成されると、そのアカウンティング情報はゼロに初期化され、すべての制限は非アクティブになり、関連付けられたプロセスはありません。 ジョブ オブジェクトにプロセスを割り当てるには、AssignProcessToJobObject 関数を使用します。 ジョブの制限を設定するには、SetInformationJobObject 関数を使用します。 アカウンティング情報を照会するには、QueryInformationJobObject 関数を使用します。
ジョブに関連付けられているすべてのプロセスは、同じセッションで実行する必要があります。 ジョブは、ジョブに割り当てられる最初のプロセスのセッションに関連付けられます。
Windows Server 2003 および Windows XP: ジョブは、ジョブを作成したプロセスのセッションに関連付けられます。
ジョブ オブジェクト ハンドルを閉じるには、CloseHandle 関数を使用します。 ジョブは、最後のハンドルが閉じられ、関連付けられているすべてのプロセスが終了すると破棄されます。 ただし、ジョブに JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE フラグが指定されている場合、最後のジョブ オブジェクト ハンドルを閉じると、関連付けられているすべてのプロセスが終了し、ジョブ オブジェクト自体が破棄されます。
この関数を使用するアプリケーションをコンパイルするには、_WIN32_WINNT を 0x0500 以降として定義します。 詳細については、「Windows ヘッダーの使用」を参照してください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows XP [デスクトップ アプリのみ] |
サポートされる最小サーバー | Windows Server 2003 [デスクトップ アプリのみ] |
ターゲット プラットフォーム の |
ウィンドウズ |
ヘッダー | winbase.h (Windows.h、Jobapi2.h を含む) |
ライブラリ | Kernel32.lib |
DLL | Kernel32.dll |
関連項目
AssignProcessToJobObject の
CloseHandle の
ジョブ オブジェクト の
SetInformationJobObject の