1

OSXシステム上の物理ストレージデバイスのリストを取得する必要があります。kIOStorageClassキーを使用するIOServiceGetMatchingServicesは、すべてのハードウェアストレージデバイスではなく、すべてのボリュームのリストを提供します。どうすればよいですか?

4

2 に答える 2

0

物理ストレージ デバイスのリストを取得するには、kIOATABlockStorageDeviceClass に一致させることができます。次のコードは、ブロック ストレージ デバイスの反復子を取得します。

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

質問は少しあいまいです (ドライブ全体、パーティション、上記のすべてが必要ですか?)、IORegistryExplorerユーティリティ (XCode に付属) を起動して、必要なデバイスのクラスを特定することをお勧めします。通常、各ドライブ全体が に対応していると言えるIOBlockStorageDriverので、おそらくそれが一致させたいクラスです。次に、IOMediaデバイス全体を表すクライアントがあります。IOMedia次に、パーティション分割されていない限り、パーティションごとにクライアントを持つパーティションスキームクライアントがあります。

于 2011-10-29T10:43:11.367 に答える