2013-04-27 10 views
5

Ho esaminato DADiskCopyDescription e elencato IOUSBDevice da IOKit e non mi fornisce il numero di serie del disco rigido USB. Quest'ultimo fornisce un numero di serie USB che non è equivalente al suo numero di serie del disco rigido. Come ottengo quello (in c/C++, NON tramite la shell)?Come si ottiene il numero di serie del disco rigido di un'unità USB su OS X?

+1

possibile duplicato di [Ottieni numero seriale di USB HDD (Mac OS)] (http://stackoverflow.com/questions/10348318/get-serial-number-of-usb-hdd-mac-os) –

+1

@JohnZwinck no, quella soluzione è il 'IOUSBDevice' a cui ho fatto riferimento nella domanda. Cioè fornisce solo la seriale USB, non la seriale HD. – chacham15

risposta

5

Quello che stai chiedendo in sostanza è "Come faccio a comunicare direttamente con un disco rigido tramite USB?"

La risposta è: Dipende dal controller USB. Non tutti i controller supportano la tua richiesta.

devono sussistere le seguenti condizioni:

  1. Il ponte USB deve supportare ATA pass-through (se ATA)
  2. SCSI deve essere supportato su sistema operativo host
  3. Il sistema operativo deve fornire un passaggio SCSI -through API (Sì su Windows e Linux, No su MacOS X)

Un altro fattore si pone: alcuni controller supportano passthrough indipendenti dal produttore, ma alcuni supportano diversi comandi basati sul disco fisso che stanno controllando. Ciò dipende anche dal fatto che l'unità collegata sia PATA, SATA/SAS o SCSI.

Esempi di controller che supportano almeno uno dei precedenti includono Sunplus SPIF215/6, SPIF225/6; JMicron JM20329, JM20335-39; e Cypress CY7C68300B/C (AT2LP), CY7C68310 (ISD-300LP).

Vorrei avere notizie più felici per voi.

+0

Interessante. Windows riesce a darmi il numero di serie corretto (unità) senza alcun lavoro speciale. Cioè senza alcun tipo di passaggio da parte mia. C'è qualcosa di simile per OS X? Quindi, stai dicendo che è impossibile su OS X? – chacham15

+0

Sospetto che il controller USB trasmetta la richiesta del numero di serie all'unità. Ri: MacOSX: Nulla è impossibile, ma potrebbe comportare un maggior lavoro. Per iniziare, dai un'occhiata a: http://comments.gmane.org/gmane.linux.utilities.smartmontools/6812 'Fino alla versione molto recente di smartmontools (5.39), SMART tramite USB non era possibile su Mac OS X, perché il kernel di Mac OS X non supporta il passaggio SCSI attraverso ... ' –

Problemi correlati