zx_vmo_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() 會嘗試在 offset 時將 buffer_size 位元組寫入 虛擬記憶體物件 (VMO)。

buffer 指標前往使用者緩衝區,以便寫入位元組。

buffer_size 要嘗試寫入的位元組數。

權限

handle 必須是 ZX_OBJ_TYPE_VMO 類型,且具有 ZX_RIGHT_WRITE

傳回值

zx_vmo_write() 會在成功時傳回 ZX_OK,而 buffer_size 位元組會從緩衝區寫入。如果失敗,會傳回負值錯誤值,且不會定義從 buffer 寫入的位元組數。

錯誤

ZX_ERR_BAD_HANDLE 帳號代碼不是有效的帳號代碼。

ZX_ERR_WRONG_TYPE 帳號代碼並非 VMO 控制代碼。

ZX_ERR_ACCESS_DENIED 處理常式沒有 ZX_RIGHT_WRITE 右側或 [buffer, buffer + buffer_size]),無法讀取。

ZX_ERR_INVALID_ARGS 緩衝區 是無效的指標或 NULL。

ZX_ERR_NOT_FOUND buffer 位址未對應到位址空間中的位址。

ZX_ERR_NO_MEMORY 無法分配系統記憶體以完成寫入作業。

ZX_ERR_OUT_OF_RANGE offset + buffer_size 大於 VMO 的大小。

ZX_ERR_BAD_STATE VMO 已標示為未快取,且無法直接寫入。

另請參閱