【发布时间】:2017-07-23 07:34:43
【问题描述】:
我有 WA 来检查 kext 上下文中的本地 fsid 是什么,只需读取预定义的本地文件状态。
static inline uint64_t get_fsid(const vfs_context_t ctx, const vnode_t vp) {
struct vnode_attr vap;
VATTR_INIT(&vap);
VATTR_WANTED(&vap, va_fsid);
vnode_getattr(vp, &vap, ctx);
return (uint64_t)vap.va_fsid;
}
另一种选择是从用户空间计算 fsid 并将此信息传递给驱动程序(使用 getmntinfo)
但是,我更喜欢直接从内核空间获取这些数据,而不依赖于当前存在的任何文件。是否有任何 KPI 来支持此请求?
【问题讨论】:
-
你所说的“WA”是什么意思?
-
@pmdj,我不确定是否有适当的 KPI 来观察挂载信息...感谢您的准确回答!
标签: macos filesystems kernel-extension xnu