zx_object_get_child

摘要

假設有一個包含子項物件的核心物件,請取得由提供的核心物件 ID 指定之子項的控制代碼。

宣告

#include <zircon/syscalls.h>

zx_status_t zx_object_get_child(zx_handle_t handle,
                                uint64_t koid,
                                zx_rights_t rights,
                                zx_handle_t* out);

說明

zx_object_get_child() 會嘗試尋找由處理常式參照的物件子項,該處理常式具有由 koid 指定的核心物件 ID。如果這類物件存在,且要求的權利不大於父項的帳號代碼提供的值,系統會傳回對指定子項物件的新控制代碼。

rights 可能是 ZX_RIGHT_SAME_RIGHTS,因此會使權利與帳號代碼中的對應權利相等。

如果物件是「Process」,此呼叫可獲取其包含的執行緒

如果物件為 Job,則其 (立即) 子項 Job 及其包含的程序可透過此呼叫取得。

權限

handle 必須具有 ZX_RIGHT_ENUMERATE

傳回值

成功時,系統會傳回 ZX_OK,並透過「out」傳回所需子項物件的控制代碼。

錯誤

ZX_ERR_BAD_HANDLE 帳號代碼不是有效的帳號代碼。

ZX_ERR_WRONG_TYPE 處理常式不是「Process」Job 或「Resource」

ZX_ERR_ACCESS_DENIED 處理常式缺少正確的 ZX_RIGHT_ENUMERATErights 指定不存在於帳號代碼上的權利。

ZX_ERR_NOT_FOUND 處理常式沒有具備核心物件 ID koid 的子項。

ZX_ERR_NO_MEMORY 因記憶體不足而失敗。使用者空間無法以任何方式處理這個錯誤 (極可能) 錯誤。日後的建構作業不會再發生這個錯誤。

ZX_ERR_INVALID_ARGS out 是無效指標。

另請參閱