You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

获取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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 07:17:57