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

WMI中Win32_VideoController的AdapterRAM属性无法正确识别独显显存

解决WMI读取大显存显卡容量错误的问题

你遇到的问题根源是Win32_VideoController的AdapterRAM属性为uint32类型,最大值仅为4294967295字节(约4GB),超过该容量的显存会因数值溢出显示错误结果。以下是两种可行的替代方案:

方案1:使用Win32_VideoController的专用显存属性(兼容多数系统)

Windows Vista及后续版本的Win32_VideoController提供了三个uint64类型的显存属性,可正确识别4GB以上的显存:

  • DedicatedVideoMemory:显卡自带的专用显存(独立显卡的真实显存容量)
  • SharedSystemMemory:从系统内存分配的共享显存
  • CurrentAvailableVideoMemory:当前可用于渲染的总显存(专用+共享剩余)

C#实现代码:

using System.Management;

var query = new ObjectQuery("SELECT Name, DedicatedVideoMemory, SharedSystemMemory FROM Win32_VideoController");
using var searcher = new ManagementObjectSearcher(query);
foreach (var controller in searcher.Get())
{
    var cardName = controller["Name"]?.ToString();
    var dedicatedBytes = Convert.ToUInt64(controller["DedicatedVideoMemory"]);
    var dedicatedGB = Math.Round(dedicatedBytes / (1024.0 * 1024.0 * 1024.0), 2);
    var sharedBytes = Convert.ToUInt64(controller["SharedSystemMemory"]);
    var sharedGB = Math.Round(sharedBytes / (1024.0 * 1024.0 * 1024.0), 2);

    Console.WriteLine($"显卡名称: {cardName}");
    Console.WriteLine($"专用显存: {dedicatedGB} GB");
    Console.WriteLine($"共享显存: {sharedGB} GB\n");
}

方案2:使用MSFT_DisplayAdapter类(现代系统推荐)

对于Windows 10 1709及以上版本,可使用root\cimv2\mdm\dmmap命名空间下的MSFT_DisplayAdapter类,其VideoMemorySizeInBytes属性为uint64类型,直接返回显卡总显存容量:

C#实现代码:

using System.Management;

var scope = new ManagementScope(@"root\cimv2\mdm\dmmap");
scope.Connect();

var query = new ObjectQuery("SELECT Name, VideoMemorySizeInBytes FROM MSFT_DisplayAdapter");
using var searcher = new ManagementObjectSearcher(scope, query);
foreach (var adapter in searcher.Get())
{
    var cardName = adapter["Name"]?.ToString();
    var vramBytes = Convert.ToUInt64(adapter["VideoMemorySizeInBytes"]);
    var vramGB = Math.Round(vramBytes / (1024.0 * 1024.0 * 1024.0), 2);

    Console.WriteLine($"显卡名称: {cardName}");
    Console.WriteLine($"总显存: {vramGB} GB\n");
}

注意事项

  • 集成显卡的DedicatedVideoMemory通常较小,主要依赖SharedSystemMemory提供显存
  • MSFT_DisplayAdapter是微软现代设备管理框架的一部分,兼容性不如Win32_VideoController,但返回的数据更简洁直接

内容的提问来源于stack exchange,提问作者Sindhu N

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 01:12:05