2010-11-28 212 views
1

我需要獲取OS X系統上物理存儲設備的列表。使用kIOStorageClass項的IOServiceGetMatchingServices爲我提供了所有卷的列表,而不是所有的硬件存儲設備。我該怎麼做呢?使用IOServiceGetMatchingServices獲取OS X存儲設備列表

+0

什麼是非卷的存儲設備,您是否還在尋找未安裝的存儲?或像塊設備...等。 – 2011-07-21 22:11:26

回答

0

的問題是有點曖昧(你想整個硬盤,分區,上述所有的?),我建議解僱了IORegistryExplorer實用程序(自帶的XCode),並找出你想要的設備類。我可以告訴你,每個整個驅動器通常對應於一個IOBlockStorageDriver,所以也許這就是你想要匹配的類。然後它將有一個代表整個設備的客戶端IOMedia。它反過來將有一個分區方案客戶端,其中每個分區有一個IOMedia客戶端,除非它沒有分區。

0

獲取可以匹配kIOATABlockStorageDeviceClass的物理存儲設備的列表。以下代碼獲取塊存儲設備的迭代器。

IOReturn  error  = kIOReturnSuccess; 
io_iterator_t iter  = MACH_PORT_NULL; 
error = IOServiceGetMatchingServices ( kIOMasterPortDefault, 
             IOServiceMatching (kIOATABlockStorageDeviceClass), 
             &iter);