zx_restricted_bind_state

摘要

建立受限狀態 VMO 並繫結至目前的執行緒。

宣告

#include <zircon/syscalls-next.h>

zx_status_t zx_restricted_bind_state(uint32_t options, zx_handle_t* out_vmo);

說明

建立 VMO 來容納 zx_restricted_state_t。將 VMO 繫結至目前版本 讓後續對 zx_restricted_enter() 的呼叫能利用這個執行緒 進入/離開嚴格篩選模式後,還原/儲存受限模式狀態

傳回的 VMO (out_vmo) 與 zx_vmo_create(),某些作業不受支援,且可能會發生錯誤。 舉例來說,系統不支援調整子 VMO 的大小和建立子 VMO。對應、 以及透過 zx_vmo_read()/zx_vmo_write() 讀取/寫入, 支援。

一次只能將一個受限狀態 VMO 繫結至執行緒。嘗試繫結其他 VMO 時,系統會取代已繫結的 VMO。

只有最後一個使用者帳號代碼關閉後,繫結的 VMO 才會刪除, 系統會移除最後一個使用者對應關係,然後發生下列其中一種情況:

與其他 VMO 一樣,一旦 VMO 對應完成,對應項目就會保留,因此呼叫端可以關閉句柄,並透過對應項目直接存取記憶體。

進入限制模式後,系統會載入 VMO 偏移 0 的 zx_restricted_state_t,並相應地繼續執行。離開受限制模式後,執行緒的受限制狀態會儲存在 VMO 的偏移 0 處。

options 必須為零。

權限

呼叫端的工作政策必須允許 ZX_POL_NEW_VMO

錯誤

ZX_ERR_INVALID_ARGS out_vmo 是無效的指標或 NULL,或是 options 是 0 以外的任何值。

ZX_ERR_NO_MEMORY 記憶體不足而導致失敗。使用者空間無法妥善處理這種 (異常) 錯誤。 在日後的版本中不會再發生這個錯誤。

另請參閱