如何获取物理和逻辑磁盘列表?

3

我该如何使用WinApi和C++获取物理磁盘列表,并为每个物理磁盘列出逻辑磁盘列表?主要目标是确定物理磁盘与逻辑磁盘之间的关联。谢谢!


2
我没有时间提供完整的答案,但是对于卷可以使用FindFirstVolume,对于物理磁盘可以使用SetupDiGetClassDevs,并且要记住,一个卷可能跨越多个磁盘。 - avakar
我猜avakar的意思是这可能是文件记录的信息类型。你看过文档了吗?如果看过的话,里面有什么是你不理解的吗? - J.N.
1个回答

2

1
请注意,逻辑驱动器和卷并不等同。多个驱动器可以引用同一卷,或者根本没有卷(如果驱动器指向网络位置)。 - avakar
@avakar:是的,两者之间的关系可能非常复杂(例如,我也忽略了分层存储)。任何简单的解决方案都会忽略不寻常的情况。 - MSalters
并非所有的卷或驱动器都有驱动器字母,有些可以是其他卷中的挂载点。 - Deanna
这完全是胡说八道。QueryDosDevice 返回的字符串格式为 \Device\HarddiskVolume#,这是卷的内部名称列表,而不是物理驱动器名称。物理驱动器名称看起来像 \Device\PhysicalDrive# - polkovnikov.ph

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接