摘要
建立新程序,將部分位址空間與其他程序共用。
宣告
#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
共用,受限制部分為新建的不公開部分
上傳資料集之後,您可以運用 AutoML
自動完成部分資料準備工作程序中的每個執行緒都會在啟用共用部分的情況下開始執行。
詳情請參閱 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()
。