zx_vmo_set_stream_size

摘要

調整 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 結尾的範圍會歸零。

當串流大小縮減時,新 (較小) 串流大小與 VMO 結尾之間的範圍會歸零。

如果 VMO 中已有任何資料位於這些範圍內,這項作業就會覆寫這些資料。

權限

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

傳回值

zx_vmo_set_stream_size() 會在成功時傳回 ZX_OK。如果失敗,系統會傳回負值錯誤值。

錯誤

ZX_ERR_BAD_HANDLE handle 不是有效的 handle。

ZX_ERR_WRONG_TYPE handle 不是 VMO handle。

ZX_ERR_ACCESS_DENIED handle 沒有 ZX_RIGHT_WRITE 權限。

ZX_ERR_OUT_OF_RANGE 要求的大小過大,或串流大小大於 VMO 大小。

ZX_ERR_NO_MEMORY 系統記憶體不足,導致失敗。

ZX_ERR_NOT_SUPPORTED VMO 是實體或連續的。

另請參閱