zxvmo_set_size

摘要

调整 VMO 对象的大小。

声明

#include <zircon/syscalls.h>

zx_status_t zx_vmo_set_size(zx_handle_t handle, uint64_t size);

说明

zx_vmo_set_size() 用于设置虚拟内存的新大小 对象 (VMO)。

大小将四舍五入到下一页面大小边界。 对 zx_vmo_get_size() 的后续调用将返回向上舍入后的大小。

VMO 的内容大小将设置为给定(未舍入)的大小。 结合使用 zx_object_get_property()ZX_PROP_VMO_CONTENT_SIZE 来读取 VMO 的内容大小将 zx_object_set_property() 与以下账号搭配使用 ZX_PROP_VMO_CONTENT_SIZE,用于设置不使用 调整 VMO 的大小

VMO 中介于给定大小和 VMO 结束之间的数据(即下一页边界) 将被替换为零。

权限

handle 的类型必须为 ZX_OBJ_TYPE_VMO,并且具有 ZX_RIGHT_WRITEZX_RIGHT_RESIZE

返回值

如果成功,zx_vmo_set_size() 会返回 ZX_OK。在活动中 则会返回负的错误值。

错误

ZX_ERR_BAD_HANDLE handle 不是有效的句柄。

ZX_ERR_WRONG_TYPE handle 不是 VMO 句柄。

ZX_ERR_ACCESS_DENIED 句柄没有 ZX_RIGHT_WRITEZX_RIGHT_RESIZE 权限。

ZX_ERR_UNAVAILABLE:未使用 ZX_VMO_RESIZABLE 创建 VMO 或 ZX_VMO_CHILD_RESIZABLE

ZX_ERR_OUT_OF_RANGE请求的内容过大。

ZX_ERR_NO_MEMORY 因缺少系统内存而失败。

ZX_ERR_BAD_STATE所请求的尺寸会舍弃已固定的网页。

另请参阅