私はすでにstackoverflow.comとgoogleを検索して回答していますが、何も見つかりませんでした。USB HDDのシリアル番号を取得する(Mac OS)
私は、外付けUSB HDD(disk1)に属するパーティション(disk1s1)のbsdNameを取得しました。
その外付けHDDのシリアル番号を調べる必要があります。 私はすでに(BSDの名前のサービスを探してください)次のことを試してみました:
io_service_t io_service = IOServiceGetMatchingService(kIOMasterPortDefault,IOBSDNameMatching(kIOMasterPortDefault, 0, [@"disk1" cStringUsingEncoding:NSUTF8StringEncoding]));
その通報は、次のとおりです。返されたサービスの種類には、フィールドUSB Serial Number
を持っていないIOMedia
です。私は、私は他の方法で回避しようとした(IOMedia
用abstraktionです)DiskArbitration
枠組み
を使用する場合、私は同じ問題で終わる:すべてIOUSBDevice
サービスは、それらを反復し、ちょうどその上bsdNameまたはパーティションを探しなさいIOUSBDevice
。残念ながら、IOUSBDevice
にはパーティションやbsdの名前に関する情報は格納されていません。
誰でもこの問題を解決できますか?
詳しい情報:
- XCodeの4.3.2
- のMac OS Xのライオン(10.7.3)
編集:ここでは は、出力の興味深い部分である場合、私IOUSBDeviceまたはAppleUSBEHCI io_servicesをすべて繰り返します。
Child props: {
"Bus Power Available" = 250;
"Device Speed" = 2;
IOCFPlugInTypes = {
"9dc7b780-9ec0-11d4-a54f-000a27052861" = "IOUSBFamily.kext/Contents/PlugIns/IOUSBLib.bundle";
};
IOGeneralInterest = "IOCommand is not serializable";
IOUserClientClass = IOUSBDeviceUserClientV2;
"Low Power Displayed" = 0;
PortNum = 3;
"Requested Power" = 250;
"USB Address" = 6;
"USB Product Name" = "Mass Storage Device";
"USB Serial Number" = 09021000000000003740385375;
"USB Vendor Name" = JetFlash;
bDeviceClass = 0;
bDeviceProtocol = 0;
bDeviceSubClass = 0;
bMaxPacketSize0 = 64;
bNumConfigurations = 1;
bcdDevice = 2560;
iManufacturer = 1;
iProduct = 2;
iSerialNumber = 3;
idProduct = 4096;
idVendor = 34148;
kHasMSCInterface = 1;
locationID = "-99418112";
sessionID = 209792844564562;
uid = "USB:85641000003740385375";
}
ご覧のとおり、シリアル番号がわかりますが、このデバイスにはどのbsd名が付いているのかわかりません。
そこで質問がhttp://stackoverflow.com/questions/2019244/how-to-get-serial-number-from-mac-hard-disks – Deepesh
elppaこんにちは、おかげであなたのリンクのソリューションは、私がすでに試したことです:AppleUSBEHCIのサブセットであるすべてのIOUSBDevicesを繰り返しました。このアプローチを試してみると、bsdの名前やパーティションに関する情報を見つけることができません。たぶん私は何かが欠けているかもしれません。その場合、より多くの情報を教えてください。 –
注:これはハードドライブのシリアル番号ではありません。それはUSBのシリアル番号です、彼らは2つの異なるものです。 (これはまた、ハードディスクの名前が表示されない理由です。つまり、これはハードドライブインタフェースではなく、単にUSBインタフェースであるためです)。 – chacham15