На моем компьютере с Windows XP SP 2 установлена оперативная память DDR2, но в обозревателе WMI (win32_physicalMemory) я получаю тип памяти = 0 (неизвестно) вместо 21 (код для DDR2). NameSpace — это CIMV2.
Подскажите, пожалуйста, как получить тип памяти DDR2 из WMI?
Одним из самых надежных способов получения такой информации является чтение 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
Для доступа к SMBIOS из приложения C ++ вы можете использовать MSSmBios_RawSMBiosTables
Класс WMI или EnumSystemFirmwareTables
а также GetSystemFirmwareTable
функции.
Дополнительно проверьте эти статьи, чтобы увидеть, как анализировать информацию таблиц SMBIOS.
SMBIOS Demystified
(C ++)Других решений пока нет …