<Return[C]><Top>

CreateJobObject

Declare Function Api_CreateJobObject& Lib "kernel32" Alias "CreateJobObjectA" (ByRef lpJobAttributes As SECURITY_ATTRIBUTES, ByVal lpName$)

Declare Function CreateJobObject Lib "kernel32" Alias "CreateJobObjectA" (ByRef lpJobAttributes As SECURITY_ATTRIBUTES, ByVal lpName As String) As Long

ジョブオブジェクトを作成する。

パラメータ
lpJobAttributes
    SECURITY_ATTRIBUTES 構造体へのポインタを指定する。この構造体により、ジョブオブジェクトのセキュリティ記述子と、取得するハン

    ドルを継承可能にするかどうかを設定する。このパラメータに NULL を指定すると、ジョブオブジェクトは既定のセキュリティ記述子と継承不

    可能なハンドルを取得する。
lpName
    ジョブオブジェクトの名前を表す NULL で終わる文字列へのポインタを指定する。この名前は MAX_PATH 文字に制限される。円記号(\)

    文字を除くすべての文字が使える。名前の比較では大文字小文字が区別される。
    lpName に NULL を指定すると、名前のないジョブオブジェクトが作成される。
    lpName が既存のイベント、セマフォ、ミューテックス、待機可能タイマ、ファイルマッピングオブジェクトのいずれかの名前と一致すると、関

    数は失敗し、GetLastError 関数が ERROR_INVALID_HANDLE を返す。これは、これらのオブジェクトが同じ名前空間を共有するため

    である。

戻り値
    関数が成功すると、ジョブオブジェクトを識別するハンドルが返る。このハンドルにより、ジョブオブジェクトへのフルアクセスが可能である。こ

    の関数を呼び出す前にオブジェクトが存在していた場合、この関数はその既存のジョブオブジェクトを識別するハンドルを返し、GetLastError

    が ERROR_ALREADY_EXISTS を返す。
    関数が失敗すると、NULL が返る。拡張エラー情報を取得するには、GetLastError 関数を使う。

解説
    ジョブオブジェクトの作成時、そのアカウント情報が 0 に初期化される。また、作成直後のジョブオブジェクトは、どのリミットもアクティブでな

    く、プロセスは関連付けられていない。ジョブオブジェクトにプロセスを関連付けるには、AssignProcessToJobObject 関数を使う。ジョブオブ

    ジェクトのリミットは、SetInformationJobObject 関数で設定する。アカウント情報を調べるときは、QueryInformationJobObject 関数を使

    う。