如何在Windows中使用c ++将物理ram安装到我的计算机上?
我的意思不仅是能够GlobalMemoryStatusEx()
的容量参数,还包括已用内存插槽的数量,内存类型(如DDR1 / DDR2 / DDR3),插槽类型(DIMM / SO-DIMM)和内存总线的时钟速率。
我需要使用SMBIOS吗?或者有其他方式来获取此信息?
答案 0 :(得分:3)
在我的机器上,您请求的大部分信息都可通过WMI获得。看看Win32_PhysicalMemory
及相关课程。
例如,我机器上的wmic memorychip
输出为:
C:\>wmic memorychip
Attributes BankLabel Capacity Caption ConfiguredClockSpeed ConfiguredVoltage CreationClassName DataWidth Description DeviceLocator FormFactor HotSwappable InstallDate InterleaveDataDepth InterleavePosition Manufacturer MaxVoltage MemoryType MinVoltage Model Name OtherIdentifyingInfo PartNumber PositionInRow PoweredOn Removable Replaceable SerialNumber SKU SMBIOSMemoryType Speed Status Tag TotalWidth TypeDetail Version
2 BANK 0 17179869184 Physical Memory 2133 1200 Win32_PhysicalMemory 64 Physical Memory ChannelA-DIMM0 12 Samsung 0 0 0 Physical Memory M471A2K43BB1-CPB 15741117 26 2133 Physical Memory 0 64 128
2 BANK 2 17179869184 Physical Memory 2133 1200 Win32_PhysicalMemory 64 Physical Memory ChannelB-DIMM0 12 Samsung 0 0 0 Physical Memory M471A2K43BB1-CPB 21251413 26 2133 Physical Memory 2 64 128
如上面的链接所示,FormFactor
12是SODIMM。
值得注意的是电压(你没有要求,但通常是有意义的)和MemoryType
,其文档已在MSDN上过时,而最近的DMIOS的SMBIOS文档包括DDR4枚举中的值。等
因此,您可能不得不采用手动或多或少的方式查看SMBIOS表。请参阅:How to get memory information (RAM type, e.g. DDR,DDR2,DDR3?) with WMI/C++