我曾看过DADiskCopyDescription
并列举了IOKit中的IOUSBDevice
,它们都没有提供USB硬盘驱动器的序列号。后者提供的USB序列号不等同于其硬盘序列号。我如何得到(在c/C++中,而不是通过shell)?如何获得OS X上USB驱动器的硬盘序列号?
回答
你基本上问的是“我如何通过USB直接与硬盘通信?”
答案是:这取决于USB控制器。并非所有控制器都支持您的请求
下列条件必须存在:
- 的USB桥接器必须支持ATA直通(如果ATA)
- SCSI必须在主机操作系统的支持
- 操作系统必须提供SCSI通(在Windows和Linux上是的,在MacOS X上是的)
另一个因素出现了:一些控制器支持独立于驱动器制造商的passthroughs,但有些支持不同的命令在他们正在控制的硬盘上。这也取决于连接的驱动器是PATA,SATA/SAS还是SCSI。
支持以上至少一种的控制器的示例包括Sunplus SPIF215/6,SPIF225/6; JMicron JM20329,JM20335-39;和赛普拉斯CY7C68300B/C(AT2LP),CY7C68310(ISD-300LP)。
希望我对你有更快乐的消息。
有趣。 Windows设法给我正确的(驱动器)序列号,没有任何特殊的工作。即没有任何通过我的部分。有没有类似的OS X?那么,你是说在OS X上不可能? – chacham15 2013-06-02 19:34:59
我怀疑你的USB控制器将串行#请求传递给驱动器。回复:MacOSX:没有什么是不可能的,但它可能涉及更多的工作。要开始使用,请查看:http://comments.gmane.org/gmane.linux.utilities.smartmontools/6812 '在最新版本的smartmontools(5.39)之前,SMART through USB在Mac OS上不可行X,因为Mac OS X内核不支持SCSI传递...' – 2013-06-02 19:54:34
- 1. 如何获得python中的硬盘驱动程序序列号
- 2. 获取USB硬盘的序列号(Mac OS)
- 3. 如何获得SCSI硬盘序列号?
- 4. 获取硬盘的驱动器号
- 5. 在Windows上区分USB闪存驱动器和USB硬盘驱动器
- 6. 使用Powershell获取硬盘驱动器序列号
- 7. 硬盘或硬盘驱动器
- 8. Linux,sysfs,usb棒和usb硬盘驱动器
- 9. C++ \ Win32的信息有关的所有驱动器:硬盘驱动器,USB驱动器,光盘驱动器,软盘驱动器等
- 10. 如何在Mac OS X中获得USB端口号?
- 11. 在Mac OS X上格式化USB闪存驱动器
- 12. 在Mac OS X上擦除整个USB驱动器
- 13. 如何从驱动器的全名获得驱动器盘符
- 14. Grep用于OS X上的硬盘ID?
- 15. 如何检测USB闪存驱动器的盘符USB闪存驱动器的
- 16. 如何获得在C或ASM硬盘序列号不WMI
- 17. 列出VC++中的USB驱动器号
- 18. 如何枚举硬盘驱动器
- 19. C# - 从硬盘驱动器
- 20. 如何获取USB闪存驱动器的制造商序列号?
- 21. 德尔福 - 如何获得USB移动硬盘和记忆棒列表?
- 22. 如何获得硬盘序列号在服务器端使用PHP
- 23. 带硬盘驱动器的C++ IO
- 24. Python搜索多硬盘驱动器
- 25. 查找没有WMI的USB驱动器的序列号
- 26. 如何识别在Windows XP中的主要IDE通道上的硬盘驱动器(驱动器号)
- 27. 如何从启动盘访问硬盘驱动器?
- 28. Mac OS X上的USB
- 29. 如何将数据结构存储在硬盘驱动器上
- 30. 通过USB从iPhone应用程序访问Mac硬盘驱动器
[获取USB HDD的序列号(Mac OS)]的可能的副本(http://stackoverflow.com/questions/10348318/get-serial-number-of-usb-hdd-mac-os) – 2013-04-27 04:37:58
@JohnZwinck不,这个解决方案是我在问题中引用的'IOUSBDevice'。即它只给出USB串行,而不是HD串行。 – chacham15 2013-04-27 10:05:37