首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DriverKit系统扩展可以在启动时匹配热插拔设备吗?

DriverKit系统扩展可以在启动时匹配热插拔设备吗?
EN

Stack Overflow用户
提问于 2021-04-15 01:51:08
回答 1查看 70关注 0票数 1

我有一个DriverKit扩展,它可以很好地匹配usb设备,但是如果我在重启时插入设备,AppleUSBAudio内核扩展就会匹配它。

拔掉插头并重新插入,然后加载我的dext。

这是意料之中的吗?是不是所有的系统扩展都有这个缺点?我该如何解决这个问题呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-15 04:12:15

在macOS 11上,如果苹果的某个kext与您的设备匹配,并且他们的驱动程序位于“启动”或“系统”集合中(请参阅man kmutil),那么他们的驱动程序将在与您的驱动程序的匹配中获胜,即使您的驱动程序的探测分数更高。

在macOS 10.15上,它应该取决于它们的kext是否在预链接的内核/kext缓存中。第三方kext也可以包括在这里,所以它至少更民主一点。不过,Dext不能在kextcache中。

我已经提交了关于这个问题的Apple DTS TSI,他们已经承认它是一个bug。我强烈建议你把它作为一个bug来归档,以增加它被修复的机会。

如果您的驱动程序没有设法获取它,那么您应该能够从用户空间守护进程通过explicitly force resetting the device以一种相当丑陋的方式解决它。这将导致它被USB子系统重新枚举,并重复I/O工具包匹配,在这一点上,您的dext希望设法获胜!

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

https://stackoverflow.com/questions/67096727

复制
相关文章

相似问题

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