zx_vmo_set_size

摘要

調整 VMO 物件的大小。

宣告

#include <zircon/syscalls.h>

zx_status_t zx_vmo_set_size(zx_handle_t handle, uint64_t size);

說明

zx_vmo_set_size() 會設定虛擬記憶體的新大小 物件 (VMO)。

系統會將大小四捨五入為下一個頁面大小的邊界。 後續呼叫 zx_vmo_get_size() 將傳回四捨五入的大小。

VMO 的內容大小會設為指定 (未四捨五入) 的大小。 將 zx_object_get_property()ZX_PROP_VMO_CONTENT_SIZE 搭配使用,即可閱讀 VMO 的內容大小使用 zx_object_set_property() 搭配 ZX_PROP_VMO_CONTENT_SIZE 用來設定 VMO 的內容大小,但沒有 但確實調整 VMO 大小

指定大小與 VMO 結尾之間的 VMO 資料 (即下一個頁面邊界) 都會以零覆寫。

權限

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

傳回值

zx_vmo_set_size() 會在成功時傳回 ZX_OK。活動 失敗時,系統會傳回負錯誤值。

錯誤

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

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

ZX_ERR_ACCESS_DENIED 帳號代碼沒有 ZX_RIGHT_WRITEZX_RIGHT_RESIZE 右側的值。

ZX_ERR_UNAVAILABLE VMO 並非使用 ZX_VMO_RESIZABLE 建立 或 ZX_VMO_CHILD_RESIZABLE

ZX_ERR_OUT_OF_RANGE 要求的大小上限太大。

ZX_ERR_NO_MEMORY 因缺少系統記憶體而失敗。

ZX_ERR_BAD_STATE要求的大小會捨棄固定頁面。

另請參閱