获取PC磁盘驱动器属性的API咨询:需查询磁盘名称与写入缓存状态
如何获取磁盘名称及写入缓存启用状态?
嘿,我懂你现在的痛点——DriveInfo.GetDrives()这个API确实没法返回「enable write caching on the device」的状态,它只提供了磁盘基本的容量、类型这类表层信息。不过咱们可以换个路子,用Windows的WMI(Windows Management Instrumentation)来搞定这个需求,它能深入系统底层拿到硬件的详细配置。
具体实现思路
WMI里的Win32_DiskDrive类正好包含我们需要的两个关键属性:
Caption:对应磁盘的名称(比如“Samsung SSD 970 EVO Plus 1TB”)EnableWriteCache:布尔值,直接表示写入缓存是否启用
C# 代码示例
首先你需要引用System.Management程序集,然后可以用下面的代码来获取信息:
using System; using System.Management; class DiskCacheChecker { static void Main() { try { // 查询Win32_DiskDrive类的所有实例 ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\CIMV2", "SELECT Caption, EnableWriteCache FROM Win32_DiskDrive"); foreach (ManagementObject disk in searcher.Get()) { Console.WriteLine($"磁盘名称: {disk["Caption"]}"); Console.WriteLine($"写入缓存启用状态: {disk["EnableWriteCache"]}"); Console.WriteLine("---------------------------"); } } catch (ManagementException e) { Console.WriteLine($"查询出错: {e.Message}"); } } }
注意事项
- 运行这段代码可能需要管理员权限,因为访问硬件底层信息通常需要更高的系统权限
- 如果是64位系统,编译项目时要注意目标平台的设置,避免WMI查询出现异常
内容的提问来源于stack exchange,提问作者user1745679
相关产品推荐
相关产品推荐

