如何获取Windows中所有连接的虚拟磁盘的列表?

时间:2018-03-24 17:49:45

标签: c++ windows visual-studio

有没有办法检索Windows机器上附加的所有虚拟磁盘的列表?我的意思是磁盘管理器安装VHD / VHDX的所有路径。

有一个未记录的函数GetAllAttachedVirtualDiskPhysicalPaths正是这样做的,但它在Windows 8中不可用(仅在8.1中)。我需要Win 8支持。

由于

3 个答案:

答案 0 :(得分:1)

我不知道直接c ++调用,假设您不知道VD句柄,但希望让所有挂载的磁盘不是由您自己的代码创建或处理的。运行

有一种粗略的方法
  diskpart
  list vdisk

脚本并将结果通过管道传输到文本文件中,然后可以使用c ++进行解析以获取列表。

答案 1 :(得分:0)

以下脚本将为您提供有关设备,分区(包括虚拟磁盘

)的信息

试试这个

gdr -PSProvider 'FileSystem' > C:\Users\...\output2.txt

//第一部分: gdr -alias将为您提供系统中存在的“虚拟驱动器”的信息。

//后一部分:将输出重定向到文本文件

希望这有帮助

答案 2 :(得分:0)

感谢@Stacking For Heap的提示 - 通过API监控,我认为Diskpart为此目的使用了VDS API,即IVdsVdProvider。刚刚构建并测试了代码 - 它工作正常。

这里使用了类似的方法,代码示例:

Retrieving virtual disk file name from disk number