1# zx_vmo_read 2 3## NAME 4 5<!-- Updated by update-docs-from-abigen, do not edit. --> 6 7vmo_read - read bytes from the VMO 8 9## SYNOPSIS 10 11<!-- Updated by update-docs-from-abigen, do not edit. --> 12 13``` 14#include <zircon/syscalls.h> 15 16zx_status_t zx_vmo_read(zx_handle_t handle, 17 void* buffer, 18 uint64_t offset, 19 size_t buffer_size); 20``` 21 22## DESCRIPTION 23 24`zx_vmo_read()` attempts to read exactly *buffer_size* bytes from a VMO at *offset*. 25 26*buffer* pointer to a user buffer to read bytes into. 27 28*buffer_size* number of bytes to attempt to read. *buffer* buffer should be large 29enough for at least this many bytes. 30 31## RIGHTS 32 33<!-- Updated by update-docs-from-abigen, do not edit. --> 34 35*handle* must be of type **ZX_OBJ_TYPE_VMO** and have **ZX_RIGHT_READ**. 36 37## RETURN VALUE 38 39`zx_vmo_read()` returns **ZX_OK** on success, and exactly *buffer_size* bytes will 40have been written to *buffer*. 41In the event of failure, a negative error value is returned, and the number of 42bytes written to *buffer* is undefined. 43 44## ERRORS 45 46**ZX_ERR_BAD_HANDLE** *handle* is not a valid handle. 47 48**ZX_ERR_WRONG_TYPE** *handle* is not a VMO handle. 49 50**ZX_ERR_ACCESS_DENIED** *handle* does not have the **ZX_RIGHT_READ** right. 51 52**ZX_ERR_INVALID_ARGS** *buffer* is an invalid pointer or NULL. 53 54**ZX_ERR_OUT_OF_RANGE** *offset* starts at or beyond the end of the VMO, 55 or VMO is shorter than *buffer_size*. 56 57**ZX_ERR_BAD_STATE** VMO has been marked uncached and is not directly readable. 58 59## SEE ALSO 60 61 - [`zx_vmo_clone()`] 62 - [`zx_vmo_create()`] 63 - [`zx_vmo_get_size()`] 64 - [`zx_vmo_op_range()`] 65 - [`zx_vmo_set_cache_policy()`] 66 - [`zx_vmo_set_size()`] 67 - [`zx_vmo_write()`] 68 69<!-- References updated by update-docs-from-abigen, do not edit. --> 70 71[`zx_vmo_clone()`]: vmo_clone.md 72[`zx_vmo_create()`]: vmo_create.md 73[`zx_vmo_get_size()`]: vmo_get_size.md 74[`zx_vmo_op_range()`]: vmo_op_range.md 75[`zx_vmo_set_cache_policy()`]: vmo_set_cache_policy.md 76[`zx_vmo_set_size()`]: vmo_set_size.md 77[`zx_vmo_write()`]: vmo_write.md 78