2010-11-28 2 views
1

OS X 시스템에서 물리적 저장 장치 목록을 가져와야합니다. kIOStorageClass 키를 사용하는 IOServiceGetMatchingServices는 모든 하드웨어 저장 장치가 아닌 모든 볼륨의 목록을 제공합니다. 어떻게해야합니까?IOServiceGetMatchingServices를 사용하여 OS X 저장 장치 목록 가져 오기

+0

볼륨이 아닌 저장 장치 란 무엇입니까? 마운트되지 않은 저장소도 찾고 있습니까? 또는 블록 장치와 같은 ... 등. –

답변

0

문제는 조금 모호 (당신이 전체 드라이브, 파티션, 위의 모든 하시겠습니까?), 나는 IORegistryExplorer 유틸리티를 (엑스 코드와 함께 제공)를 발사 제안하고 원하는 장치의 어떤 클래스 파악. 각 드라이브은 일반적으로 IOBlockStorageDriver에 해당하므로, 일치시킬 클래스라고 말할 수 있습니다. 그런 다음 전체 장치를 나타내는 IOMedia 클라이언트를 갖게됩니다. 분할되지 않은 경우가 아니면 각 분할 영역에 클라이언트가 IOMedia 인 분할 영역 클라이언트가 있습니다.

0

물리적 저장 장치의 목록을 가져 오려면 kIOATABlockStorageDeviceClass와 일치시킬 수 있습니다. 다음 코드는 블록 저장 장치에 대한 반복기를 가져옵니다.

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