[英]ioreg list multiple dext
我已经使用 DriverKit 和 USBDriverKit 编写了一个似乎运行良好的系统扩展(在开发人员模式下运行,SIP 关闭,...仍在等待权利)。
当我插入 USB 设备并在终端中输入ioreg | grep com.myinc.mydriver
ioreg | grep com.myinc.mydriver
我看到一个条目:
+-o IOUserServer(com.myinc.mydriver ... registered, matched, active, busy 0 (0ms), retain 13
我拔下设备并执行另一个ioreg
,我得到了相同的但保留9。
如果我插入我的设备,那么另一个ioreg
现在会显示 2 个条目(前一个条目和一个新条目)。
这是正常的吗? 为什么上一个还活跃?
在我的 dex 中,我检查我的 Stop 和 free 函数是否被调用,我想不出我错过了什么。
有人可以向我解释这一点或向我指出我可能忘记做的事情吗? 保留 9 与我在代码中所做的事情有什么关系吗?
我想出了我的问题,并会在这里留下答案,以防它对其他人有帮助...
我使用CopyInterface()
(来自IOUSBHostDevice
)获得了我的IOUSBHostInterface
对象。 然后在这个对象上我调用了Open()
。
在我的Stop()
实现中,我在接口对象上调用了Close()
但我忘记调用release
。
现在,当我断开设备连接时,一旦调用了所有free()
函数,在控制台中我就会收到消息“没有服务,正在退出”。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.