CreateJobObjectW

ジョブオブジェクトを作成または開く。(CreateJobObjectW)

CreateJobObjectW lpJobAttributes, lpName

lpJobAttributes : [var] ジョブオブジェクトのセキュリティ記述子を指定し、子プロセスが返されたハンドルを継承できるかを決定する SECURITY_ATTRIBUTES 構造体へのポインタ。lpJobAttributes が NULL の場合、ジョブオブジェクトは既定のセキュリティ記述子を取得し、ハンドルは継承できない。ジョブオブジェクトの既定セキュリティ記述子の ACL は作成者のプライマリトークンまたは impersonation トークンから取得される。
lpName : [wstr] ジョブの名前。名前は MAX_PATH 文字に制限される。名前比較は大文字小文字を区別する。

(プラグイン / モジュール : kernel32.dll)

解説

ジョブオブジェクトを作成または開く。(CreateJobObjectW)

[戻り値]
関数が成功した場合、戻り値はジョブオブジェクトへのハンドル。ハンドルは 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 以降として定義する。詳細は Using the Windows Headers を参照。

情報

プラグイン / モジュールkernel32.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の kernel32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_kernel32_gen2.hs