摘要
从规则的 IOBuffer 区域分配一个 ID
ZX_IOB_DISCIPLINE_TYPE_ID_ALLOCATOR
。
声明
#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);
说明
系统会为从关联的
为规则的 IOBuffer 区域提供支持的容器
ZX_IOB_DISCIPLINE_TYPE_ID_ALLOCATOR
,
用于与区域交互的 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 分配器区域已损坏。