SMBIOS - 获取SPD(串行存在检测)模块信息C#

时间:2017-02-10 19:08:23

标签: c#

我搜索了很多,但没有找到任何工作代码通过C#获取SPD表信息。在那里有很多软件可以获得这些信息但是如何?

enter image description here

如图所示,对于RAM设备,您可以看到制造商的名称,WMI等根本无法检索

如果在C#中使用DLL也将是完美的

经过一些研究发现:

https://github.com/sapozhnikovay/SMBIOS

但它无法读取表17以获取内存设备信息。

2 个答案:

答案 0 :(得分:4)

在我研究此问​​题后,您需要通过 SMBUS (不是SMBIOS)获取此信息。但是您需要创建一个驱动程序(C / C ++中的WDM)来访问此信息。

答案 1 :(得分:1)

确保您已添加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");

我对它进行了测试并返回了序列号,您还可以查看可以放入的产品列表,如制造商,名称,容量等。

我从this YouTube video获得了所有这些信息。

您可以找到所有设备及其属性here(CPU,GPU等)