有没有办法通过 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 类连接起来的方法——缺少一些链接类。
有人知道解决办法吗?
最佳答案
我知道的唯一方法是使用 Win32 API 来提供帮助。
你 open a handle使用 Win32_Volume 到卷.DeviceID,稍作修改。您可以使用以下格式打开卷的句柄:
\\.\Volume{[GUID]}
然后您需要发出 IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS在打开的句柄上检索 VOLUME_DISK_EXTENTS结构体。此结构将包含卷的物理磁盘 ID 列表。
使用这些磁盘 ID,您可以在 Win32_DiskDrive 上查询 WMI .索引得到匹配的磁盘。
关于c# - 使用 WMI 查询获取挂载点的相应物理磁盘驱动器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2155215/