摘要
新增 VMO 的執行權限。
宣告
#include <zircon/syscalls.h>
zx_status_t zx_vmo_replace_as_executable(zx_handle_t handle,
zx_handle_t vmex,
zx_handle_t* out);
說明
zx_vmo_replace_as_executable()
會建立處理常式取代,也就是參照相同的基礎虛擬記憶體物件 (VMO),並加入正確的 ZX_RIGHT_EXECUTE
。
handle 一律會失效。
權限
handle 必須是 ZX_OBJ_TYPE_VMO
類型。
vmex 的資源種類 ZX_RSRC_KIND_SYSTEM
必須具有基礎 ZX_RSRC_SYSTEM_VMEX_BASE
。
傳回值
zx_vmo_replace_as_executable()
會在成功時傳回 ZX_OK
。如果失敗,系統會傳回負值的錯誤值。
錯誤
ZX_ERR_BAD_HANDLE
處理常式不是有效的 VM 物件控制代碼,或 vmex 不是有效的 ZX_RSRC_KIND_SYSTEM
資源控制代碼,含有基礎 ZX_RSRC_SYSTEM_VMEX_BASE
。
ZX_ERR_NO_MEMORY
因記憶體不足而失敗。使用者空間無法以任何方式處理這個錯誤 (極可能) 錯誤。日後的建構作業不會再發生這個錯誤。