1

我已经通过 IOKit 开发了一个内核扩展(kext),但将来会被弃用。所以我想开发另一个使用 dext 的驱动程序来使用 DriverKit 替换 kext。但是我没有找到可执行的解决方案,就像我找不到某些类来替代 IOMedia。当我打算在我的代码中包含 IOKit 时,我发现 TARGET_OS_DRIVERKIT 是 1。有人可以帮助我吗?非常感谢!

4

1 回答 1

1

IOMedia是 的子类IOStorage和 的一部分IOStorageFamily。从 macOS 11.2 SDK (Xcode 12.4) 开始,这还没有移植到 DriverKit。

SCSIControllerDriverKit API 自 WWDC 2020 以来一直处于测试阶段。它没有随 macOS 11.0.x-11.2 的发布版本一起提供。它包含在(在撰写本文时)11.3 的当前测试版中。也许它会看到 macOS 11.3 的一般发布。这不是存储堆栈的直接端口;相反,它本质上是IOParallelSCSIControllerKPI 的一个端口。这使您可以为 SCSI 控制器实现驱动程序。这样的驱动程序可以告诉操作系统有关一个或多个 SCSI 设备(包括块设备)的信息,并将开始从系统接收 SCSI 命令,并将其转发到底层控制器设备。它不允许您实现“过滤”存储驱动程序,或向系统中的其他设备发出 SCSI 命令。

于 2020-06-19T11:51:42.830 回答