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_SHAREDzx_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_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()

另請參閱