摘要
建立新工作。
宣告
#include <zircon/syscalls.h>
zx_status_t zx_job_create(zx_handle_t parent_job,
uint32_t options,
zx_handle_t* out);
說明
zx_job_create()
會根據父項工作建立新的子項工作物件。
成功時,會傳回新工作的控制代碼。
核心會追蹤並限制工作的「高度」,也就是與根工作之間的距離。以父項高度超過內部「最大高度」值的父項建立工作是違法行為。(不過,透過這類工作建立程序是合法的)。
可能會等待的工作控點 (TODO(cpu):請展開)
權限
parent_job 必須為 ZX_OBJ_TYPE_JOB
類型且內含 ZX_RIGHT_MANAGE_JOB
。
傳回值
zx_job_create()
會在成功時傳回 ZX_OK
和新工作的控制代碼 (透過「出」)。如果失敗,會傳回負值錯誤值。
錯誤
ZX_ERR_BAD_HANDLE
parent_job 不是有效的控制代碼。
ZX_ERR_WRONG_TYPE
parent_job 不是工作帳號代碼。
ZX_ERR_INVALID_ARGS
options 非零,或 out 為無效指標。
ZX_ERR_ACCESS_DENIED
parent_job 沒有 ZX_RIGHT_WRITE
或 ZX_RIGHT_MANAGE_JOB
權限。
ZX_ERR_OUT_OF_RANGE
parent_job 的高度過大,無法建立子工作。
ZX_ERR_NO_MEMORY
因記憶體不足而失敗。使用者空間無法以任何方式處理這個錯誤 (極可能) 錯誤。日後的建構作業不會再發生這個錯誤。
ZX_ERR_BAD_STATE
:父項工作物件處於無效狀態。