gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:30:12 30 4
gpt4 key购买 nike

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

最佳答案

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

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

必须满足以下条件:

  1. USB 桥接器必须支持 ATA 直通(如果是 ATA)
  2. 主机操作系统必须支持 SCSI
  3. 操作系统必须提供 SCSI 直通 API(在 Windows 和 Linux 上是,在 MacOS X 上不是)

另一个因素出现了:一些 Controller 支持独立于驱动器制造商的直通,但一些 Controller 支持基于它们控制的硬盘驱动器的不同命令。这还取决于连接的驱动器是 PATA、SATA/SAS 还是 SCSI。

至少支持上述其中一项的 Controller 示例包括凌阳SPIF215/6、SPIF225/6; JMicron JM20329, JM20335-39;和 Cypress CY7C68300B/C (AT2LP)、CY7C68310 (ISD-300LP)。

希望我有更快乐的消息告诉你。

关于c++ - 如何在 OS X 上获取 USB 驱动器的硬盘驱动器序列号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16248358/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com