你可以(ab)爲此使用IOKit。請注意,CoreStorage加密的屬性沒有在任何地方正式定義,所以這個決不是公共API。此外,您需要檢查覈心存儲爲操作系統提供的整個磁盤對象(例如,磁盤1),而不是核心存儲器LV所在的分區(例如disk0s2)。
const char *bsdDisk = "disk1";
DASessionRef session = DASessionCreate(kCFAllocatorDefault);
DADiskRef disk = DADiskCreateFromBSDName(kCFAllocatorDefault, session, "disk1");
io_service_t diskService = DADiskCopyIOMedia(disk);
CFBooleanRef isEncrypted = IORegistryEntryCreateCFProperty(diskService,
CFSTR("CoreStorage Encrypted"),
kCFAllocatorDefault,
0);
fprintf(stdout,
"%s %s encrypted\n",
bsdDisk,
(CFBooleanGetValue(isEncrypted)) ? "is" : "is not");
CFRelease(isEncrypted);
IOObjectRelease(diskService);
CFRelease(disk);
CFRelease(session);
感謝 - 作品像魅力! – 2013-02-14 13:47:44