【问题标题】:How to get a list of all attached virtual disks in Windows?如何获取 Windows 中所有附加虚拟磁盘的列表?
【发布时间】:2018-03-24 17:49:44
【问题描述】:

有没有办法检索 Windows 机器上连接的所有虚拟磁盘的列表?我的意思是磁盘管理器挂载的 VHD/VHDX 的所有路径。

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

谢谢

【问题讨论】:

    标签: c++ windows visual-studio


    【解决方案1】:

    我不知道直接的 c++ 调用,假设您不知道 VD 句柄但想要获取所有未由您自己的代码创建或处理的已安装磁盘。有一个粗略的方法可以通过运行

      diskpart
      list vdisk
    

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

    【讨论】:

    • 这在内部称为IVdsVdProvider::QueryVDisks - 总是更好地调用 api 和commiterfaces 直接自己
    【解决方案2】:

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

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

    Retrieving virtual disk file name from disk number

    【讨论】:

      猜你喜欢
      • 2020-01-09
      • 2017-01-15
      • 2019-07-21
      • 1970-01-01
      • 2018-03-08
      • 1970-01-01
      • 2021-05-05
      • 2021-03-09
      • 2019-08-11
      相关资源
      最近更新 更多