1

我需要获取 OS X 系统上的物理存储设备列表。IOServiceGetMatchingServices 使用 kIOStorageClass 键为我提供了所有卷的列表,而不是所有硬件存储设备。我该怎么做呢?

4

2 回答 2

0

这个问题有点模棱两可(你想要整个驱动器,分区,以上所有吗?),我建议启动IORegistryExplorer实用程序(XCode 附带)并确定你想要哪类设备。我可以告诉你,每个整个驱动器通常对应一个IOBlockStorageDriver,所以也许这就是你想要匹配的类。然后它将有一个IOMedia代表整个设备的客户端。反过来,它将有一个分区方案客户IOMedia端,每个分区都有一个客户端,除非它没有分区。

于 2011-10-29T10:43:11.367 回答
0

要获取物理存储设备列表,您可以匹配 kIOATABlockStorageDeviceClass。以下代码获取块存储设备的迭代器。

IOReturn        error       = kIOReturnSuccess;
io_iterator_t   iter        = MACH_PORT_NULL;
error = IOServiceGetMatchingServices (  kIOMasterPortDefault,
                                      IOServiceMatching ( kIOATABlockStorageDeviceClass ),
                                      &iter );
于 2013-05-09T06:30:17.950 回答