如何使用Windows API检索HD供应商/序列

时间:2010-08-03 11:56:55

标签: c++ c windows

我说的是物理磁盘驱动器,而不是卷/分区/逻辑驱动器。因此,通常建议的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函数查询各种磁盘属性。但是,我找不到查询磁盘供应商/串行属性的方法,这些属性在设备管理器中可见。

1 个答案:

答案 0 :(得分:5)

看看DiskId32。源代码也在那里。我们的想法是将DFP_RECEIVE_DRIVE_DATADeviceIoControl一起使用。