【问题标题】:Get corresponding physical disk drives of mountpoints with WMI queries?使用 WMI 查询获取挂载点的相应物理磁盘驱动器?
【发布时间】:2011-01-10 10:40:04
【问题描述】:

有没有办法使用 WMI 检索挂载点(挂载到文件系统而不是挂载到驱动器号的卷)与其所属的物理磁盘驱动器之间的连接?

例如,我在 W2K8 服务器上有一个卷挂载点,该卷挂载点挂载到“C:\Data\”,挂载点分布在服务器的物理磁盘驱动器 2、4 和 5 上(数据管理服务器管理器显示)但我找不到通过使用 WMI 来了解这一点的方法。

具有驱动器号的卷可以与 WMI 类连接 Win32_DiskDrive --> Win32_DiskDriveToDiskPartition --> Win32_DiskPartition --> Win32_LogicalDiskToPartition --> Win32_LogicalDisk – 但问题是,卷挂载点未列在类 Win32_LogicalDisk,它们仅列在 Win32_Volume 中。而且我没有找到将 Win32_Volume 类与 Win32_DiskDrive 类连接的方法——缺少一些链接类。

有人知道解决办法吗?

【问题讨论】:

    标签: c# wmi


    【解决方案1】:

    我知道的唯一方法是使用 Win32 API 来提供帮助。

    open a handle到卷使用Win32_Volume.DeviceID,稍作修改。您可以使用以下格式打开卷的句柄:

    \\.\Volume{[GUID]}
    

    然后您需要在打开的句柄上发出IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS 以检索VOLUME_DISK_EXTENTS 结构。此结构将包含卷的物理磁盘 ID 列表。

    使用这些磁盘 ID,您可以在 Win32_DiskDrive.Index 上查询 WMI 以获取匹配的磁盘。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-05
      • 2011-02-25
      • 1970-01-01
      相关资源
      最近更新 更多