I have DDR2 RAM on my windows XP SP 2 Machine, but on WMI explorer (win32_physicalMemory) I am getting Memory Type = 0(Unknown) instead of 21(the code for DDR2). NameSpace i
One of the most reliable ways to get such info is reading the SMBIOS Tables, you must look for the Memory Device (Type 17) Structure (this structure describes a single memory device installed on the system), and the Memory Type
Field.
These are the possible values of this field.
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
In order to access the SMBIOS from a C++ application you can use the MSSmBios_RawSMBiosTables
WMI Class or the EnumSystemFirmwareTables and GetSystemFirmwareTable functions.
Additionally check these articles to see how parse the infor of the SMBIOS tables.