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() 尝试查找所引用的对象的子项 由 handle(具有 koid 指定的内核对象 ID)触发。如果 对象存在,并且请求的权利不高于所提供的权利 被 handle 传递给父对象时,指定子对象的新句柄是 返回。

rights 可以是 ZX_RIGHT_SAME_RIGHTS,这样将产生同等权利 标识名上的标识名。

如果对象是一个 Process,则可以获取它包含的 Threads, 这场通话

如果对象为 Job,则其(直接)子 JobProcesses 该对象包含的内容可通过此调用获取。

权限

handle 必须具有 ZX_RIGHT_ENUMERATE

返回值

成功后,系统将返回 ZX_OK,并通过 out 返回所需子对象的句柄。

错误

ZX_ERR_BAD_HANDLE handle 不是有效的句柄。

ZX_ERR_WRONG_TYPE handle 不是 ProcessJobResource

ZX_ERR_ACCESS_DENIED handle 缺少正确的 ZX_RIGHT_ENUMERATErights 指定 handle 上不存在的权限。

ZX_ERR_NOT_FOUND handle 没有内核对象 ID 为 koid 的子项。

ZX_ERR_NO_MEMORY 因内存不足而失败。 用户空间没有好办法处理这种(不太可能)错误。 在将来的版本中,此错误不会再发生。

ZX_ERR_INVALID_ARGS out 是无效的指针。

另请参阅