ZX_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);

說明

zx_vmo_read() 會嘗試讀取虛擬記憶體中剛好讀取的 buffer_size 個位元組 物件 (VMO) 位置

buffer 指標指向使用者緩衝區,以便讀取位元組。

buffer_size 要讀取的位元組數量。buffer 緩衝區應該較大 足以應付至少這個位元組數

權限

handle 必須是 ZX_OBJ_TYPE_VMO 類型,且包含 ZX_RIGHT_READ

傳回值

zx_vmo_read() 會在成功時傳回 ZX_OK,而剛好 buffer_size 個位元組 已寫入 buffer。 失敗時,系統會傳回負錯誤值,以及 寫入 buffer 的位元組未定義。

錯誤

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

ZX_ERR_WRONG_TYPE 帳號代碼不是 VMO 控制代碼。

ZX_ERR_ACCESS_DENIED 帳號代碼沒有 ZX_RIGHT_READ 的權利或 或 [bufferbuffer + buffer_size) 支付 無法寫入

ZX_ERR_INVALID_ARGS buffer 為無效的指標或 NULL。

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

ZX_ERR_OUT_OF_RANGE offset + buffer_size 大於 擔任 VMO

ZX_ERR_BAD_STATE VMO 標示為未快取,因此無法直接讀取,或 VMO 標示為 網頁伺服器所支援的呼叫端或 VMO 狀態不良,因此無法存取所要求的網頁 。

ZX_ERR_IOVMO 是由呼叫器提供支援,且呼叫器在讀取資料時遇到 I/O 錯誤 傳回的資訊

ZX_ERR_IO_DATA_INTEGRITYVMO 是由呼叫器支援,以及讀取器中讀取的內容 Pager 毀損。

另請參閱