1
私はMacOSに2つのディスクを公開するUSBマスストレージデバイスを持っています。すべてのUSBマスストレージデバイスの一覧を取得
io_registry_entry_t child;
io_iterator_t child_iterator = MACH_PORT_NULL;
kern_return_t kr;
kr = IORegistryEntryCreateIterator(usbDevice,
kIOServicePlane,
kIORegistryIterateRecursively,
&child_iterator);
if (kr != kIOReturnSuccess) {
return;
}
while ((child = IOIteratorNext(child_iterator)) != MACH_PORT_NULL) {
CFStringRef bsdName = NULL;
bsdName = (CFStringRef) IORegistryEntrySearchCFProperty(child, kIOServicePlane, CFSTR(kIOBSDNameKey), kCFAllocatorDefault, kIORegistryIterateRecursively);
if (bsdName) {
....
は私が持っている可能性が何の任意のポインタまたは情報をいただければと思います。私は、コードを使用して第2のものを得ることができない、しかし https://oroboro.com/usb-serial-number-osx/
: 私はhttps://stackoverflow.com/users/1412808/rafael-baptistaさんの記事を使用して最初のものを検出し得ますここでもっとうまくいった。
ありがとうございました。
あなたの 'usbDevice'ハンドルはどこから来ていますか?確かに、それがこの問題の鍵です。 – pmdj
usbDevice = IOIteratorNext(iterator)から来ます。新しい一致するデバイスが検出されたときに取得するイテレータです。私はその問題とは思わない。 – GregJaskiewicz
さて、あなたは複数のusbデバイスで繰り返し処理していますか?その部分は機能しますか? – pmdj