如何使用 WMI 获取特定硬盘的逻辑磁盘
本文关键字:磁盘 硬盘 何使用 WMI 获取 | 更新日期: 2023-09-27 18:31:16
我目前正在处理一个需要使用WMI(Windows管理界面)的项目。我需要查找硬盘和逻辑磁盘以及有关它们的一些信息。例如,我使用以下代码来获取物理磁盘:
hd = new HardDrive();
mosDisks = new ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive WHERE Model = '"
+ disksModel[i] + "'");
foreach(ManagementObject moDisk in mosDisks.Get())
{
string vari = moDisk["DeviceID"].ToString();
hd.HardDiskModel = moDisk["Model"].ToString();
hd.HardDiskType = moDisk["InterfaceType"].ToString();
hd.HardDiskStatus = moDisk.Properties["Status"].Value.ToString();
hd.HardDiskSize = moDisk.Properties["Size"].Value.ToString();
hd.HardDiskName = moDisk.Properties["Name"].Value.ToString();
hd.HardDiskSerialNo = moDisk.Properties["SerialNumber"].Value.ToString();
}
然后是另一个查询以获取逻辑磁盘。
我唯一想知道的是:如何确保获得特定硬盘的逻辑磁盘?
例如,如果我有 3 个硬盘(HD1、HD2、HD3)和 8 个逻辑磁盘(c:
到 j:
),我如何在代码中确保例如c:
和d:
属于 HD1、e:
、f:
、g:
和h:
属于 HD2 和 i:
和 j:
属于 HD3?
您可以使用
ASSOCIATORS OF
句子将Win32_DiskDrive
与逻辑驱动器相关联,这些是您必须使用的类。
- Win32_DiskDrive
- Win32_DiskDriveToDiskPartition
- Win32_DiskPartition
- Win32_LogicalDiskToPartition
- Win32_LogicalDisk
前段时间我写了一个关于这个的 Delphi 示例,你可以检查一下,你也可以在这个 SO 问题上找到一个 C# 示例。