我说的是物理 磁盘驱动器,而不是卷/分区/逻辑驱动器。因此,通常建议的 GetVolumeInformation
函数不适用于我的情况。
确切地说:我正在直接使用尚未分区的磁盘。
我通过 CreateFile
函数打开它的句柄:
hDisk = CreateFile(
_T("\\\\.\\PHYSICALDRIVE0"),
GENERIC_READ|GENERIC_WRITE,
FILE_SHARE_READ|FILE_SHARE_WRITE,
NULL,
OPEN_EXISTING,
FILE_FLAG_OVERLAPPED|FILE_FLAG_NO_BUFFERING,
NULL);
我可以使用这个句柄直接在磁盘上读/写。还可以使用 DeviceIoControl
函数查询各种磁盘属性。但是我找不到查询磁盘供应商/串行属性的方法,这些属性在设备管理器中可见。
最佳答案
看看DiskId32 .源代码也在那里。这个想法是将 DFP_RECEIVE_DRIVE_DATA
与 DeviceIoControl
一起使用。
关于c++ - 如何使用 Windows API 检索 HD 供应商/序列号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3396216/