共用方式為


CreateJobObjectA 函式 (winbase.h)

建立或開啟作業物件。

語法

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

參數

[in, optional] lpJobAttributes

SECURITY_ATTRIBUTES 結構的指標,指定作業對象的安全性描述項,並判斷子進程是否可以繼承傳回的句柄。 如果 lpJobAttributesNULL,則作業物件會取得預設的安全性描述元,而且無法繼承句柄。 作業物件之預設安全性描述元中的 ACL 來自建立者的主要或模擬令牌。

[in, optional] lpName

作業的名稱。 名稱限制為 MAX_PATH 個字元。 名稱比較會區分大小寫。

如果 lpNameNULL,則會建立沒有名稱的作業。

如果 lpName 符合現有事件、旗號、mutex、可等候定時器或檔案對應物件的名稱,則函式 會失敗,而且 getLastError 函式會傳回 ERROR_INVALID_HANDLE。 這是因為這些對象共用相同的命名空間。

物件可以在私人命名空間中建立。 如需詳細資訊,請參閱 物件命名空間

終端機服務:名稱可以有 “Global” 或 “Local” 前置詞,以明確在全域或會話命名空間中建立物件。 名稱的其餘部分可以包含反斜杠字元 (\) 以外的任何字元。 如需詳細資訊,請參閱 Kernel Object Namespaces

傳回值

如果函式成功,傳回值就是作業物件的句柄。 句柄具有 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