Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何为macOS10.15+开发通过系统扩展读取磁盘的驱动程序和DriverKit;_Macos_Macos Catalina_Disk_Iokit_Driverkit - Fatal编程技术网

如何为macOS10.15+开发通过系统扩展读取磁盘的驱动程序和DriverKit;

如何为macOS10.15+开发通过系统扩展读取磁盘的驱动程序和DriverKit;,macos,macos-catalina,disk,iokit,driverkit,Macos,Macos Catalina,Disk,Iokit,Driverkit,我已经用IOKit开发了一个内核扩展(kext),但将来它将被弃用。因此,我想开发另一个驱动程序,使用dext替换kext,使用DriverKit。但是我找不到可执行的解决方案,就像我找不到某个类来修复IOMedia一样。当我打算在代码中包含IOKit时,我发现目标是1。 有人能帮我吗?非常感谢 IOMedia是IOStorage的一个子类,是IOStorageFamily的一部分。从macOS 11.2 SDK(Xcode 12.4)开始,这还没有移植到DriverKit 自WWDC 2020

我已经用IOKit开发了一个内核扩展(kext),但将来它将被弃用。因此,我想开发另一个驱动程序,使用dext替换kext,使用DriverKit。但是我找不到可执行的解决方案,就像我找不到某个类来修复IOMedia一样。当我打算在代码中包含IOKit时,我发现目标是1。
有人能帮我吗?非常感谢

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


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

共享一些代码示例将非常有用谢谢您的回复,也许这是唯一的方法@德克:是的,存储kext是目前唯一的选择。他们增加了对存储驱动程序的支持吗?@RhythmicFistman我已经用最新情况更新了答案。macOS的公开发行版目前不支持DriverKit中的任何块存储功能
SCSIControllerDriverKit
是测试版,但它是一个相当严格的功能集,不等同于
IOStorageFamily
,后者处于更高的级别。@pmdj您认为SCSIControllerDriverKit足以拥有一个基于dext的RAID驱动程序吗?我读了您的最后一句话“它不允许您实现“过滤”存储驱动程序,或向系统中的其他设备发出SCSI命令。”听起来似乎还不可能。