zx_iob_allocate_id

摘要

从规则 ZX_IOB_DISCIPLINE_TYPE_ID_ALLOCATOR 的 IOBuffer 区域中分配一个 ID。

声明

#include <zircon/syscalls-next.h>

zx_status_t zx_iob_allocate_id(zx_handle_t handle,
                               zx_iob_allocate_id_options_t options,
                               uint32_t region_index,
                               const void* blob,
                               uint64_t blob_size,
                               uint32_t* id);

说明

系统从支持规则 ZX_IOB_DISCIPLINE_TYPE_ID_ALLOCATOR 的 IOBuffer 区域的关联容器中为提供的 blob 分配新的 ID。

用于与区域交互的 IOBuffer 句柄必须允许通过中介进行写入访问。

返回值

如果操作成功,zx_iob_allocate_id() 会返回 ZX_OK,并使用分配的 ID 填充 id

错误

ZX_ERR_OUT_OF_RANGE region_index 超出了区域索引上限。

ZX_ERR_WRONG_TYPE 相应区域不属于 ZX_IOB_DISCIPLINE_TYPE_ID_ALLOCATOR 学科。

ZX_ERR_INVALID_ARGS options 为非零值(目前没有支持非默认选项)。

ZX_ERR_ACCESS_DENIED IOB 句柄没有写入权限,或相应区域没有中介写入权限。

ZX_ERR_NO_MEMORY ID 分配器区域已用尽内存,无法分配新 ID。请注意,这与系统内存的状态无关。

ZX_ERR_IO_DATA_INTEGRITY ID 分配器区域已损坏。