摘要
將位元組寫入 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 個位元組寫入 虛擬記憶體物件 (VMO) 的 offset。
緩衝區指標,指向要從中寫入位元組的使用者緩衝區。
buffer_size:嘗試寫入的位元組數。
權限
handle 必須是 ZX_OBJ_TYPE_VMO 類型,且具有 ZX_RIGHT_WRITE。
傳回值
zx_vmo_write() 會在成功時傳回 ZX_OK,且系統會從 buffer 寫入正好 buffer_size 個位元組。
如果失敗,系統會傳回負數錯誤值,且從 buffer 寫入的位元組數目未定義。
錯誤
ZX_ERR_BAD_HANDLE handle 不是有效控點。
ZX_ERR_WRONG_TYPE handle 不是 VMO 控制代碼。
ZX_ERR_ACCESS_DENIED handle 沒有 ZX_RIGHT_WRITE 權限,或 [buffer, buffer + buffer_size) 不可讀取。
ZX_ERR_NOT_FOUND 緩衝區位址未對應至位址空間中的位址。
ZX_ERR_NO_MEMORY 無法分配系統記憶體來完成寫入作業。
ZX_ERR_OUT_OF_RANGE offset + buffer_size 大於 VMO 的大小。
ZX_ERR_BAD_STATE VMO 已標示為未快取,無法直接寫入。