摘要
調整 VMO 物件的串流大小。
宣告
#include <zircon/syscalls.h>
zx_status_t zx_vmo_set_stream_size(zx_handle_t handle, uint64_t size);
說明
zx_vmo_set_stream_size()
會變更虛擬記憶體的串流大小
物件 (VMO)。
與 VMO 大小不同,串流大小不會四捨五入至下一個頁面大小邊界,因此
串流大小不一定會以頁面對齊。你可以變更
不可調整大小的 VMO無法使用這個函式變更 VMO 大小,zx_vmo_set_size()
可以
以變更 VMO 大小
串流大小增加時,範圍會從原始 (較小) 串流大小到結尾 VMO 的數值為 0
減少串流大小時,新的 (較小) 串流大小與結束串流 VMO 為零。
如果這些範圍內的 VMO 中有任何現有資料,系統將覆寫這個範圍 作業。
權限
handle 必須是 ZX_OBJ_TYPE_VMO
類型,且具有 ZX_RIGHT_WRITE
傳回值
zx_vmo_set_stream_size()
會在成功時傳回 ZX_OK
。活動
失敗時,系統會傳回負錯誤值。
錯誤
ZX_ERR_BAD_HANDLE
帳號代碼不是有效的帳號代碼。
ZX_ERR_WRONG_TYPE
帳號代碼不是 VMO 控制代碼。
ZX_ERR_ACCESS_DENIED
帳號代碼沒有 ZX_RIGHT_WRITE
的權利。
ZX_ERR_OUT_OF_RANGE
要求的大小過大,或是串流大小超過 VMO 大小。
ZX_ERR_NO_MEMORY
因缺少系統記憶體而失敗。
另請參閱
zx_vmo_create()
zx_vmo_get_size()
zx_vmo_get_stream_size()
zx_vmo_set_size()
zx_vmo_op_range()
zx_vmo_read()
zx_vmo_write()