as_puth64 内核服务
用途
指示将不会对使用 as_geth64 内核服务获取的虚拟内存对象进行更多引用。
语法
#include <sys/types.h> #include <sys/errno.h> #include <sys/vmuser.h> #include <sys/adspace.h> 整型 as_puth64 ( addr64, 虚拟句柄 ) 无符号长长整型 添加 64; Vmhandle_t 虚拟句柄;
参数
| 项 | 描述 |
|---|---|
| addr64 | 指定获取虚拟内存对象句柄时所使用的虚拟内存地址。 此地址必须与先前为 as_geth64 内核服务提供的地址相同。 |
| vmhandle | 描述将不会再引用的虚拟内存对象。 该句柄必须已由 as_geth64 内核服务返回。 |
描述
as_puth64 内核服务用于指示不会再对调用 as_geth64 内核服务所返回的虚拟内存对象进行任何引用。 必须使用 as_det64 或 VM_det 服务将虚拟内存对象从地址空间中拆离。
如果未能调用 as_puth64 内核服务,那么可能导致资源永久不可用以供复用。
如果出于某种原因,已知无法删除虚拟内存对象,那么可以使用 as_getsrval64 内核服务,而不是 as_geth64 内核服务。 此内核服务并不要求使用 as_puth64 内核服务。
as_puth64 内核服务假定采用固定大小虚拟内存对象的地址空间模型。
对于 32 位和 64 位用户地址空间,此服务都将正常运行。 它也将适用于内核进程 (克普罗克斯)。
注: 此服务仅在当前进程的地址空间上运行。 不允许它在另一个地址空间上运行。
执行环境
as_puth64 内核服务只能从进程环境中进行调用。
返回值
| 项 | 描述 |
|---|---|
| 重大安全事件数量 | 成功完成。 |
| EINVAL | 输入地址超出范围。 |