总结
将进程设置为对作业至关重要的进程。
声明
#include <zircon/syscalls.h>
zx_status_t zx_job_set_critical(zx_handle_t job,
uint32_t options,
zx_handle_t process);
说明
将 process 设为对 job 至关重要。进程终止时,作业也将终止,就好像对其调用了 zx_task_kill()
。所使用的返回代码将为 ZX_TASK_RETCODE_CRITICAL_PROCESS_KILL
。
指定的 job 必须是 process 的父级或祖先。
如果 options 为 ZX_JOB_CRITICAL_PROCESS_RETCODE_NONZERO
,则 job 只有在 process 具有非零返回代码时才会终止。
权限
job 必须具有 ZX_RIGHT_DESTROY
。
process 必须具有 ZX_RIGHT_WAIT
。
返回值
zx_job_set_critical()
会在成功时返回 ZX_OK
。如果失败,则返回负错误值。
错误
ZX_ERR_BAD_HANDLE
job 或 process 不是有效的句柄。
ZX_ERR_WRONG_TYPE
job 或 process 不是作业句柄。
ZX_ERR_INVALID_ARGS
options 不是 0 或 ZX_JOB_CRITICAL_PROCESS_RETCODE_NONZERO
,或者 job 不是 process 的父项,也不是祖先实体。
ZX_ERR_ALREADY_BOUND
进程已设置为对作业至关重要。
ZX_ERR_ACCESS_DENIED
作业没有 ZX_RIGHT_DESTROY
或进程没有 ZX_RIGHT_WAIT
。