i've already searched stackoverflow.com and google for an answer but couldn't find anything.
I've got the bsdName of a partition (disk1s1) which belongs to an external USB HDD (disk1).
I need to find out the serial number of that external HDD. I already tried the following (look for a service with the bsd Name):
io_service_t io_service = IOServiceGetMatchingService(kIOMasterPortDefault,IOBSDNameMatching(kIOMasterPortDefault, 0, [@"disk1" cStringUsingEncoding:NSUTF8StringEncoding]));
The Problem with that is: The service type returned is IOMedia
which has no field USB Serial Number
. I end up with the same problem if i use DiskArbitration
framework (which is an abstraktion for IOMedia
)
So i tried the other way around: Get all IOUSBDevice
services iterate over them and just look for the bsdName or partitions on that IOUSBDevice
. Unfortunately, there is no information stored about any partitions or bsd names in IOUSBDevice
.
Can anybody help me with this problem?
Further information:
- XCode 4.3.2
- Mac OS X Lion (10.7.3)
EDIT: Here is the interesting part of the output if i iterate over all IOUSBDevice or 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";
}
As you can see, i get the serial number but i have no possibility to tell which bsd name this device has.