我说的是物理磁盘驱动器,而不是卷/分区/逻辑驱动器.所以通常建议的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);
Run Code Online (Sandbox Code Playgroud)
我可以使用这个句柄直接在磁盘上读/写.还可以使用DeviceIoControl函数查询各种磁盘属性.但是,我找不到查询磁盘供应商/串行属性的方法,这些属性在设备管理器中可见.