TerminateJobObject 関数 (jobapi2.h)

ジョブに現在関連付けられているすべてのプロセスを終了します。 ジョブが入れ子になっている場合、この関数は、現在ジョブに関連付けられているすべてのプロセスと階層内のすべての子ジョブを終了します。

構文

BOOL TerminateJobObject(
  [in] HANDLE hJob,
  [in] UINT   uExitCode
);

パラメーター

[in] hJob

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

ジョブ オブジェクト内の各プロセスのハンドルには、PROCESS_TERMINATEアクセス権が必要です。 詳細については、「 プロセス のセキュリティとアクセス権」を参照してください。

[in] uExitCode

ジョブ オブジェクト内のすべてのプロセスとスレッドで使用される終了コード。 GetExitCodeProcess 関数を使用して、各プロセスの終了値を取得します。 GetExitCodeThread 関数を使用して、各スレッドの終了値を取得します。

戻り値

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

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

解説

ジョブに関連付けられているどのプロセスも、終了を延期または処理することはできません。 ジョブに関連付けられている各プロセスに対して TerminateProcess が呼び出されたかのように表示されます。

入れ子になったジョブを終了すると、さらにすべての子ジョブ オブジェクトが終了します。 終了したジョブによって使用されるリソースは、階層内の親ジョブ チェーンに課金されます。

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

要件

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

関連項目

CreateJobObject

ジョブ オブジェクト

OpenJobObject

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

TerminateProcess