zx_process_create_shared

摘要

创建一个可与其他进程共享部分地址空间的新进程。

声明

#include <zircon/syscalls.h>

zx_status_t zx_process_create_shared(zx_handle_t shared_proc,
                                     uint32_t options,
                                     const char* name,
                                     size_t name_size,
                                     zx_handle_t* proc_handle,
                                     zx_handle_t* restricted_vmar_handle);

说明

zx_process_create_shared() 会创建一个新进程,共享其部分地址空间 和shared_proc。创建的进程将添加到 shared_proc 所在的作业中。

shared_proc 必须是使用 ZX_PROCESS_SHARED 或通过 zx_process_create_shared()

已创建进程的地址空间一分为二:共享部分shared_proc 共享,以及受限部分(仅供已创建的内容使用) 过程。进程中的每个线程开始执行时共享部分处于活跃状态。

如需了解详情,请参阅 zx_process_create()

权限

shared_proc 必须为 ZX_OBJ_TYPE_PROCESS 类型且具有 ZX_RIGHT_MANAGE_PROCESS

请参见zx_process_create()

返回值

成功后,zx_process_create_shared() 会返回 ZX_OK(新进程的句柄) (通过 proc_handle)以及受限地址空间根目录的句柄(通过 restricted_vmar_handle).如果失败,则返回负的错误值。

如需了解详情,请参阅 zx_process_create()

错误

ZX_ERR_INVALID_ARGS shared_proc 是一个有效的句柄,但指向的进程 不是通过 zx_process_create_shared() 创建的,zx_process_create() 不是 ZX_PROCESS_SHARED

ZX_ERR_BAD_HANDLE shared_proc 不是有效的句柄。

ZX_ERR_WRONG_TYPE shared_proc 不是进程句柄。

ZX_ERR_BAD_STATE shared_proc 是有效的句柄,但共享状态不再有效 (可能是因为所有进程共享终止状态)。

ZX_ERR_ACCESS_DENIED shared_proc 没有“ZX_RIGHT_MANAGE_PROCESS”权限 (仅当非 ZX_HANDLE_INVALID 时)。

如果看到其他错误,请参阅 zx_process_create()

另请参阅