摘要
透過 VMO 建立串流。
宣告
#include <zircon/syscalls.h>
zx_status_t zx_stream_create(uint32_t options,
zx_handle_t vmo,
zx_off_t seek,
zx_handle_t* out_stream);
說明
zx_stream_create()
會建立串流,而該串流會讀取及寫入
基礎 VMO
串流的跳轉偏移會初始化為 seek。
選項
ZX_STREAM_MODE_READ
這個訊息串將用於讀取。如果提供了
vmo 缺少 ZX_RIGHT_READ
,這個函式會傳回
ZX_ERR_ACCESS_DENIED
。否則 ZX_RIGHT_READ
將會新增為
這樣就能在已建立的串流物件上新增錯誤
ZX_STREAM_MODE_WRITE
系統會使用串流進行寫入。如果提供了
vmo 缺少 ZX_RIGHT_WRITE
,這個函式會傳回
ZX_ERR_ACCESS_DENIED
。否則 ZX_RIGHT_WRITE
將會新增為
這樣就能在已建立的串流物件上新增錯誤
ZX_STREAM_MODE_APPEND
系統會以附加模式建立串流。串流
附加模式會以不可分割的形式,為內容設定串流的跳轉偏移
再以串流方式寫入 zx_stream_writev()
。
權限
TODO(https://fxbug.dev/42107318)
傳回值
zx_stream_create()
會在成功時傳回 ZX_OK
。如果發生以下情況:
失敗時,會傳回下列其中一個值。
錯誤
「ZX_ERR_BAD_HANDLE
」vmo 不是有效的帳號代碼。
ZX_ERR_WRONG_TYPE
vmo 並非 VMO 控制代碼。
ZX_ERR_ACCESS_DENIED
vmo 沒有指定項目的必要權利
只要設定成「自動重新啟動」
和「在主機維護期間」選項即可
ZX_ERR_INVALID_ARGS
out_stream 是無效的指標或 NULL,out_stream
將不支援的位元設為 1。
ZX_ERR_NO_MEMORY
因記憶體不足而失敗。