2013-04-27 2 views
5

Я просмотрел DADiskCopyDescription и перечислил IOUSBDevice от IOKit и не предоставил мне серийный номер жесткого диска USB. Последний содержит серийный номер USB, который не эквивалентен серийному номеру жесткого диска. Как это получить (в c/C++, NOT через оболочку)?Как получить серийный номер жесткого диска USB-накопителя на OS X?

+1

Возможный дубликат [Получить серийный номер USB-накопителя (Mac OS)] (http://stackoverflow.com/questions/10348318/get-serial-number-of-usb-hdd-mac-os) –

+1

@JohnZwinck Нет, это решение является «IOUSBDevice», на которое я ссылался в вопросе. То есть он дает только последовательный порт USB, а не серийный номер HD. – chacham15

ответ

5

Что вы в основном просите: «Как я могу напрямую связаться с жестким диском через USB?»

Ответ: Это зависит от контроллера USB. Не все контроллеры поддерживают ваш запрос.

Следующие условия должны существовать:

  1. мост USB должен поддерживать ATA сквозная (если ATA)
  2. SCSI должны поддерживаться на хост-ОС
  3. ОС должна обеспечивать пропуск SCSI через API (да, в Windows и Linux, нет на MacOS X)

Еще один фактор: некоторые контроллеры поддерживают независимые от производителя транзитные проходы, но некоторые поддерживают разные команды на основе на жестком диске они контролируют. Это также зависит от того, является ли подключенный диск PATA, SATA/SAS или SCSI.

Примеры контроллеров, которые поддерживают хотя бы один из вышеперечисленных, включают Sunplus SPIF215/6, SPIF225/6; JMicron JM20329, JM20335-39; и Cypress CY7C68300B/C (AT2LP), CY7C68310 (ISD-300LP).

Жаль, что у меня были более счастливые новости для вас.

+0

Интересно. Windows удается дать мне правильный (диск) серийный номер без какой-либо специальной работы. То есть без каких-либо проходов с моей стороны. Есть ли что-то подобное для OS X? Итак, вы говорите, что это невозможно в OS X? – chacham15

+0

Я подозреваю, что ваш USB-контроллер передает запрос серийного номера на диск. Re: MacOSX: Нет ничего невозможного, но это может потребовать больше работы. Для начала взгляните на: http://comments.gmane.org/gmane.linux.utilities.smartmontools/6812 'До недавней версии smartmontools (5.39), SMART через USB не удалось в Mac OS X, потому что ядро ​​Mac OS X не поддерживает передачу SCSI через ... ' –

Смежные вопросы