如何在OS X上获取USB驱动器的硬盘驱动器序列号?

时间:2013-04-27 04:30:09

标签: c++ c macos

我查看了DADiskCopyDescription并从IOKit枚举了IOUSBDevice,并没有向我提供USB硬盘的序列号。后者提供的USB序列号与其硬盘序列号不同。我如何得到它(在c / c ++中,不是通过shell)?

1 个答案:

答案 0 :(得分:5)

您基本上要问的是“如何通过USB直接与硬盘驱动器通信?”

答案是:这取决于USB控制器。并非所有控制器都支持您的请求。

必须存在以下条件:

  1. USB网桥必须支持ATA直通(如果是ATA)
  2. 主机操作系统必须支持SCSI
  3. 操作系统必须提供SCSI传递API(Windows和Linux上为“是”,MacOS X上为“否”)
  4. 另一个因素是:某些控制器支持独立于驱动器制造商的直通,但有些控制器支持基于其控制的硬盘驱动器的不同命令。这还取决于连接的驱动器是PATA,SATA / SAS还是SCSI。

    支持上述至少一种的控制器示例包括Sunplus SPIF215 / 6,SPIF225 / 6; JMicron JM20329,JM20335-39;和赛普拉斯CY7C68300B / C(AT2LP),CY7C68310(ISD-300LP)。

    希望我有更快乐的消息。