zx_vmo_read
名称
vmo_read —— 从VMO中读取字节
概要
#include <zircon/syscalls.h>
zx_status_t zx_vmo_read(zx_handle_t handle, void* buffer, uint64_t offset, size_t buffer_size);
描述
vmo_write() 的功能是试图从VMO的offset位移处读取buffer_size字节的数据。
buffer是指向用户缓冲区的指针,用于读入字节。
buffer_size是试图读取的字节数,并且buffer缓冲区需即至少有buffer_size字节。
权限
TODO(ZX-2399)
返回值
zx_vmo_read() 调用成功则返回ZX_OK,并且将buffer_size字节的数据写入到buffer中。 如果发生错误,则返回负的错误码,且写入buffer的字节数是不确定的。
错误码
ZX_ERR_BAD_HANDLE:handle是无效句柄。
ZX_ERR_WRONG_TYPE:handle不是VMO类型的句柄。
ZX_ERR_ACCESS_DENIED:handle不具有ZX_RIGHT_READ权限。
ZX_ERR_INVALID_ARGS:buffer是无效指针或NULL
。
ZX_ERR_OUT_OF_RANGE:offset大于或等于VMO的结束位置,或者VMO大小小于buffer_size。
ZX_ERR_BAD_STATE:VMO已标记为未缓存,无法直接读取。
另见
vmo_create, vmo_clone, vmo_write, vmo_get_size, vmo_set_size, vmo_op_range. vmo_set_cache_policy