摘要
建立新的 Pager 物件。
宣告
#include <zircon/syscalls.h>
zx_status_t zx_pager_create(uint32_t options, zx_handle_t* out);
說明
zx_pager_create()
會建立新的 Pager 物件。
刪除 Pager 物件後,原本需要與 Pager 通訊的任何 VMO 存取權都會失敗,如同呼叫 zx_pager_detach_vmo()
一樣。此外,核心將盡可能加快錯誤發生的速度 (例如,移除存在的網頁),但確切的行為取決於實作方式。
傳回的帳號代碼將具備下列權限:
- ZX_RIGHT_TRANSFER
- 帳號代碼可能會轉移到其他程序。
- ZX_RIGHT_INSPECT
- 可能會使用 zx_object_get_info()
進行檢查。
- ZX_RIGHT_ATTACH_VMO
- 可能會使用 zx_pager_create_vmo()
連接 VMO,並使用 zx_pager_detach_vmo()
卸離 VMO。
- ZX_RIGHT_MANAGE_VMO
- 可能會變更自有 VMO 的內容或呼叫器相關中繼資料,例如使用 zx_pager_supply_pages()
或 zx_pager_op_range()
。
權限
呼叫端工作政策必須允許 ZX_POL_NEW_PAGER
。
傳回值
zx_pager_create()
會在成功時傳回 ZX_OK,失敗時則會傳回下列其中一個錯誤代碼。
錯誤
ZX_ERR_INVALID_ARGS
out 是無效指標,或 options 為 0 以外的任何值。
ZX_ERR_NO_MEMORY
因記憶體不足而失敗。