Проверка отсеков оперативной памяти (Windows API) - PullRequest
0 голосов
/ 23 октября 2008

Я знаю, что можно проверить, сколько физической оперативной памяти установлено, используя GetPhysicallyInstalledSystemMemory или сколько оперативной памяти может видеть операционная система, используя GlobalMemoryStatusEx. Однако мне интересно, есть ли способ проверить, сколько оперативной памяти установлено пользователем по слоту. То есть, чтобы иметь возможность программно определять разницу между 1x2 ГБ оперативной памяти и 2x1 ГБ оперативной памяти, таким образом проверяя, можно ли легко обновить компьютер с помощью программного обеспечения. В идеале, способ проверить это без .Net.

Ответы [ 4 ]

2 голосов
/ 23 октября 2008

Используйте WMI для просмотра Win32_PhysicalMemory. Посмотрите на свойства Емкость и Метка банка.

ОБНОВЛЕНО: вам не нужен .NET для этого. См. Создание приложения WMI с использованием C ++ для примеров в C ++

1 голос
/ 23 октября 2008

Вам не нужен WMI (всегда избегайте WMI (медленно)), ни какой-либо драйвер (конечно) Используйте стандартный Win32 SMB apis

1 голос
/ 23 октября 2008

Просматривая документы MSDN для перечисленных функций здесь , я вижу, что функция сверяется с таблицей SMBIOS, на которую ссылается стандарт здесь Похоже, что вы действительно можете найти информацию, которую вы ищете через BIOS. Возможно, вам придется установить драйвер, чтобы передать эту информацию в вашу программу.

Удачи!

0 голосов
/ 23 октября 2008

В Linux я почти всегда могу найти эту информацию с помощью dmidecode, который анализирует таблицы DMI из BIOS. Он показывает все слоты памяти и то, что на каждом, а также другую интересную информацию. Однако я не знаю, как получить данные DMI в Windows.

...