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

Tho*_*mas 6 c# wmi

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

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

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

有谁知道解决方案?

Ale*_*xPi 2

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

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

\\.\Volume{[GUID]}
Run Code Online (Sandbox Code Playgroud)

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

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