【问题标题】:How to get memory information (RAM type, e.g. DDR,DDR2,DDR3?) with WMI/C++如何使用 WMI/C++ 获取内存信息(RAM 类型,例如 DDR、DDR2、DDR3?)
【发布时间】:2012-12-23 00:36:20
【问题描述】:

我的 Windows XP SP 2 机器上有 DDR2 RAM,但在 WMI 资源管理器 (win32_physicalMemory) 上,我得到的内存类型 = 0(未知)而不是 21(DDR2 的代码)。命名空间是 CIMV2。 你能告诉我如何从 WMI 获取 DDR2 内存类型吗?

【问题讨论】:

  • 如果你问,它告诉你“未知”,你可能不能。相当多的 WMI 只是从其他地方收集数据。如果这些地方没有它,那么您将需要忍受要么不获取该信息,要么从 WMI 以外的其他地方获取它。

标签: c++ wmi


【解决方案1】:

获取此类信息的最可靠方法之一是读取SMBIOS 表,您必须查找Memory Device (Type 17) Structure(此结构描述了系统上安装的单个内存设备)和Memory Type 字段。

这些是该字段的可能值。

01h Other
02h Unknown
03h DRAM
04h EDRAM
05h VRAM
06h SRAM
07h RAM
08h ROM
09h FLASH
0Ah EEPROM
0Bh FEPROM   
0Ch EPROM
0Dh CDRAM
0Eh 3DRAM
0Fh SDRAM
10h SGRAM
11h RDRAM
12h DDR
13h DDR2
14h DDR2 FB-DIMM
15h-17h Reserved
18h DDR3
19h FBD2
1Ah DDR4
1Bh LPDDR
1Ch LPDDR2
1Dh LPDDR3
1Eh LPDDR4

要从 C++ 应用程序访问 SMBIOS,您可以使用 MSSmBios_RawSMBiosTables WMI 类或 EnumSystemFirmwareTablesGetSystemFirmwareTable 函数。

另外查看这些文章,了解如何解析 SMBIOS 表的信息。

【讨论】:

猜你喜欢
  • 2011-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多