摘要
销毁虚拟内存地址区域。
声明
#include <zircon/syscalls.h>
zx_status_t zx_vmar_destroy(zx_handle_t handle);
说明
zx_vmar_destroy()
会取消映射指定区域内的所有映射,并销毁该区域的所有子区域。请注意,此操作在逻辑上是递归的。
此操作不会关闭句柄。此 VMAR 的所有未处理句柄都将保留为有效句柄,但对它们执行的所有 VMAR 操作都将失败。
通过 zx_process_create()
获取的根 VMAR 无法销毁。
权限
TODO(https://fxbug.dev/42107318)
返回值
zx_vmar_destroy()
会在成功时返回 ZX_OK
。
错误
ZX_ERR_ACCESS_DENIED
标识名不包含 ZX_RIGHT_OP_CHILDREN
。
ZX_ERR_BAD_HANDLE
句柄不是有效句柄。
ZX_ERR_WRONG_TYPE
句柄不是 VMAR 句柄。
ZX_ERR_BAD_STATE
此区域已被销毁。
ZX_ERR_NOT_SUPPORTED
handle 是一个根 VMAR。