zxvmo_write

摘要

将字节写入 VMO。

声明

#include <zircon/syscalls.h>

zx_status_t zx_vmo_write(zx_handle_t handle,
                         const void* buffer,
                         uint64_t offset,
                         size_t buffer_size);

说明

zx_vmo_write() 尝试将 buffer_size 字节写入 offset 处的虚拟内存对象 (VMO)。

指向用户缓冲区的 buffer 指针,用于写入字节。

尝试写入的字节数(buffer_size)。

权限

句柄必须是 ZX_OBJ_TYPE_VMO 类型,并且具有 ZX_RIGHT_WRITE

返回值

zx_vmo_write() 在成功时返回 ZX_OK,并且已从 buffer 写入正好 buffer_size 个字节。 如果失败,则返回负错误值,并且从 buffer 写入的字节数未定义。

错误

ZX_ERR_BAD_HANDLE 句柄不是有效的句柄。

ZX_ERR_WRONG_TYPE handle 不是 VMO handle。

ZX_ERR_ACCESS_DENIED 句柄不具有 ZX_RIGHT_WRITE 权限,或者 [buffer, buffer + buffer_size) 不可读。

ZX_ERR_NOT_FOUND buffer 地址未映射到地址空间中的地址。

ZX_ERR_NO_MEMORY 无法分配系统内存来完成写入。

ZX_ERR_OUT_OF_RANGE offset + buffer_size 大于 VMO 的大小。

ZX_ERR_BAD_STATE VMO 已标记为未缓存,无法直接写入。

另请参阅