使用WMI查询获取相应的挂载点物理磁盘驱动器?

时间:2010-01-28 14:38:28

标签: c# wmi

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

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

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

有人知道解决方案吗?

2 个答案:

答案 0 :(得分:2)

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

open a handle使用Win32_Volume对卷进行了IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS。稍微修改了DeviceID。您可以使用以下格式打开卷的句柄:

\\.\Volume{[GUID]}

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

使用这些磁盘ID,您可以在{{3}}。索引上查询WMI以获取匹配的磁盘。

答案 1 :(得分:0)

这与我的问题类似:availability of Win32_MountPoint and Win32_Volume on Windows XP?

在示例代码中(在C#中),我在Win32_Volume类和Win32_MountPoint类之间进行链接。