SMBIOS - Получить информацию о модуле SPD (Serial Presence Detect) Информация С#

Я много искал, но не нашел никаких рабочих кодов, получающих информацию о SPD-таблицах через С#. Там есть много программ, которые получают эту информацию, но КАК?

введите описание изображения здесь

как показано на рисунке, для устройств RAM вы можете увидеть имя производителя, которое не может быть вообще получено WMI и т.д.

Если есть DLL для использования в С#, то будет отлично и

После некоторых исследований найдено следующее:

https://github.com/sapozhnikovay/SMBIOS

но он не может прочитать таблицу 17, чтобы получить информацию о устройстве памяти.

Ответы

Ответ 1

Как только я исследовал это, вам нужно получить эту информацию через SMBUS (не SMBIOS). Но вам нужно создать драйвер (WDM в C/С++) для доступа к этой информации.

Ответ 2

Убедитесь, что вы добавили System.Management в качестве ссылки.

Вот строка, которая возвращает почти любую информацию, которую вы хотите от компонента:

private string getComponent(string hwClass, string syntax)
    {
        ManagementObjectSearcher mos = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM " + hwClass);
        foreach (ManagementObject mj in mos.Get())
        {
            return Convert.ToString(mj[syntax]);
        }
        return null;
    }

Использование строки будет выглядеть так, например, нажатием кнопки:

label1.Text = getComponent("Win32_PhysicalMemory", "SerialNumber");

Я протестировал его, и он вернул серийный номер, вы также можете посмотреть список вещей, которые вы можете добавить в качестве производителя, имени, емкости и т.д.

Я получил всю эту информацию из это видео YouTube.

Вы можете найти все устройства и их свойства здесь (CPU, GPU и т.д.)