【发布时间】:2020-04-18 13:51:58
【问题描述】:
我对如何以编程方式检测连接到 Windows PC 的硬盘驱动器、SSD 等的制造商感兴趣。如果有什么不同,我可能会在 Windows 10 上使用 C++。
也许有多个级别,也许是注册表、Windows API、SATA、USB?
我需要一种适用于通过 USB 连接的外部驱动器的方法。我想我正在寻找可以查询硬件的 Windows API。
谷歌搜索我只能找到从控制台或某些应用程序查看此信息的方法,或者查询有关驱动器的其他信息而不是制造商的方法。
【问题讨论】:
-
您可以使用 WMI 的 Win32_DiskDrive 类 docs.microsoft.com/en-us/windows/win32/cimwin32prov/… 。否则查询磁盘本身,但它更复杂:stackoverflow.com/questions/5070987/… 但是您会发现 WMI 的制造商字段通常填充有“(标准磁盘驱动器)”。对于其他 API,将一无所有。如果是这种情况,则意味着此信息根本不可用。您只会得到模型(通常包含一些提示,例如 Western Digital 的“WDC”)
-
例如,设备管理器中列出的磁盘驱动器:
Samsung SSD 850 EVO 500GB,您要获取的是制造商名称,如Samsung? -
@RitaHan-MSFT:是的。我不知道我是否必须解析这样的字符串,格式是否可靠,或者是否有一些低级二进制数可以在表中查找?
-
@hippietrail 这个答案对你有用吗?
标签: windows winapi drive usb-drive