【发布时间】:2018-03-24 17:49:44
【问题描述】:
有没有办法检索 Windows 机器上连接的所有虚拟磁盘的列表?我的意思是磁盘管理器挂载的 VHD/VHDX 的所有路径。
有一个未记录的函数 GetAllAttachedVirtualDiskPhysicalPaths 可以做到这一点,但它在 Windows 8 中不可用(仅在 8.1 中)。我需要 Win 8 支持。
谢谢
【问题讨论】:
标签: c++ windows visual-studio
有没有办法检索 Windows 机器上连接的所有虚拟磁盘的列表?我的意思是磁盘管理器挂载的 VHD/VHDX 的所有路径。
有一个未记录的函数 GetAllAttachedVirtualDiskPhysicalPaths 可以做到这一点,但它在 Windows 8 中不可用(仅在 8.1 中)。我需要 Win 8 支持。
谢谢
【问题讨论】:
标签: c++ windows visual-studio
我不知道直接的 c++ 调用,假设您不知道 VD 句柄但想要获取所有未由您自己的代码创建或处理的已安装磁盘。有一个粗略的方法可以通过运行
diskpart
list vdisk
编写脚本并将结果通过管道传输到一个文本文件中,然后您可以使用 c++ 对其进行解析以获取列表。
【讨论】:
IVdsVdProvider::QueryVDisks - 总是更好地调用 api 和commiterfaces 直接自己
感谢@Stacking For Heap 的提示 - 通过 API 监控,我发现 Diskpart 使用 VDS API 来实现此目的,即IVdsVdProvider。刚刚构建并测试了代码 - 它工作正常。
这里使用了类似的方法,带有代码示例:
【讨论】: