次の方法で共有


CreateJobObjectA 関数 (winbase.h)

ジョブ オブジェクトを作成または開きます。

構文

HANDLE CreateJobObjectA(
  [in, optional] LPSECURITY_ATTRIBUTES lpJobAttributes,
  [in, optional] LPCSTR                lpName
);

パラメーター

[in, optional] lpJobAttributes

ジョブ オブジェクトのセキュリティ記述子を指定し、子プロセスが返されたハンドルを継承できるかどうかを判断する SECURITY_ATTRIBUTES 構造体へのポインター。 lpJobAttributes が NULL場合、ジョブ オブジェクトは既定のセキュリティ記述子を取得し、ハンドルを継承できません。 ジョブ オブジェクトの既定のセキュリティ記述子の ACL は、作成者のプライマリ トークンまたは偽装トークンから取得されます。

[in, optional] lpName

ジョブの名前。 名前は MAX_PATH 文字に制限されています。 名前の比較では、大文字と小文字が区別されます。

lpName NULL場合、ジョブは名前なしで作成されます。

lpName が既存のイベント、セマフォ、ミューテックス、待機可能タイマー、またはファイル マッピング オブジェクトの名前と一致する場合、関数は失敗し、GetLastError 関数は ERROR_INVALID_HANDLEを返します。 これは、これらのオブジェクトが同じ名前空間を共有しているために発生します。

オブジェクトはプライベート名前空間に作成できます。 詳細については、「オブジェクト名前空間の」を参照してください。

ターミナル サービス: 名前には、グローバル名前空間またはセッション名前空間にオブジェクトを明示的に作成するための "グローバル" または "ローカル" プレフィックスを付けることができます。 名前の残りの部分には、円記号 (\) を除く任意の文字を含めることができます。 詳細については、「カーネル オブジェクト名前空間を参照してください。

戻り値

関数が成功した場合、戻り値はジョブ オブジェクトへのハンドルです。 ハンドルには、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 の

ジョブ オブジェクト の

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

QueryInformationJobObject

SECURITY_ATTRIBUTES

SetInformationJobObject の