首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ioreg list multiple dext

ioreg list multiple dext
EN

Stack Overflow用户
提问于 2020-10-17 04:53:29
回答 1查看 87关注 0票数 2

我已经使用DriverKit和USBDriverKit编写了一个系统扩展,它似乎工作得很好(在开发人员模式下运行,SIP关闭,...仍在等待授权)。

当我插入我的USB设备并在终端中输入ioreg | grep com.myinc.mydriver时,我看到一个条目:

+-o IOUserServer(com.myinc.mydriver ... registered, matched, active, busy 0 (0ms), retain 13

我拔下设备的插头,再做一次ioreg,我得到了同样的结果,但用的是reve9。

如果我插入我的设备,那么另一个ioreg现在显示2个条目(以前的一个和一个新的)。

这是正常的吗?为什么前一个仍然处于活动状态?

在我的dext中,我检查我的Stop和free函数是否被调用,并且我不能想到我错过了任何东西。

有没有人能给我解释一下,或者告诉我我可能忘记做什么了?retain 9与我在代码中所做的事情有关系吗?

EN

回答 1

Stack Overflow用户

发布于 2020-10-20 09:21:51

我找出了我的问题,并将在这里留下一个答案,以防它有助于其他人……

我使用CopyInterface() (从IOUSBHostDevice)获得了IOUSBHostInterface对象。然后在这个对象上,我调用了Open()

在我的Stop()实现中,我在接口对象上调用了Close(),但是我忘记了调用release

现在,当我断开我的设备时,一旦我所有的free()函数都被调用了,在控制台中我就会得到消息“没有服务离开,正在退出”。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64396264

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档