Macos DriverKit系统扩展能否在引导时与热插拔设备匹配?

Macos DriverKit系统扩展能否在引导时与热插拔设备匹配?,macos,macos-catalina,iokit,kernel-extension,driverkit,Macos,Macos Catalina,Iokit,Kernel Extension,Driverkit,我有一个DriverKit扩展,可以很好地匹配usb音频设备,但是如果我在重新启动时将设备插入,那么AppleUSBAudio内核扩展将与之匹配 拔掉和重新拔掉电源,然后加载我的dext 这是意料之中的事吗?所有的系统扩展都有这个缺点吗?我该如何补救呢?在macOS 11上,如果苹果的一个KEXT与您的设备匹配,并且它们的驱动程序在“boot”或“sys”集合中(请参阅man kmutil),通常是这样,那么它们的驱动程序将赢得与您的设备的匹配,即使您的探测分数较高 在macOS 10.15上,

我有一个DriverKit扩展,可以很好地匹配usb音频设备,但是如果我在重新启动时将设备插入,那么
AppleUSBAudio
内核扩展将与之匹配

拔掉和重新拔掉电源,然后加载我的dext


这是意料之中的事吗?所有的系统扩展都有这个缺点吗?我该如何补救呢?

在macOS 11上,如果苹果的一个KEXT与您的设备匹配,并且它们的驱动程序在“boot”或“sys”集合中(请参阅
man kmutil
),通常是这样,那么它们的驱动程序将赢得与您的设备的匹配,即使您的探测分数较高

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

我已经就这个问题提交了苹果DTS TSI,他们已经承认这是一个bug。我强烈建议您将其作为bug进行归档,以增加修复的机会


如果您的驱动程序没有抓到它,您应该能够通过用户空间守护程序以一种相当丑陋的方式解决它。这将导致USB子系统重新枚举它,并重复I/O工具包匹配,此时您的dext有望获胜

不好,但至少有办法。非常感谢。我会试着把这个归档。它很蹩脚。