C++ 找内存制造商

C++ 找内存制造商,c++,c,windows,winapi,C++,C,Windows,Winapi,有人知道如何通过编程检索ram内存制造商吗 谢谢 现代RAM芯片在板上有一个额外的EPROM,其中包含大量关于RAM的信息。这方面的标准是SPD或串行存在检测。至少有些版本的SPD包含JDEC制造商代码 有关SPD的介绍信息,请参阅。并不是每个RAM芯片都有您需要的信息,也不是每个BIOS都会公开这些信息,但本文应该让您开始在可能的情况下处理这些信息。在WINAPI中,您应该能够调用GetSystemFirmwareTable来检索SMBIOS表,然后解析该表以提取这些信息 看到这个了吗 还有

有人知道如何通过编程检索ram内存制造商吗


谢谢

现代RAM芯片在板上有一个额外的EPROM,其中包含大量关于RAM的信息。这方面的标准是SPD或串行存在检测。至少有些版本的SPD包含JDEC制造商代码


有关SPD的介绍信息,请参阅。并不是每个RAM芯片都有您需要的信息,也不是每个BIOS都会公开这些信息,但本文应该让您开始在可能的情况下处理这些信息。

在WINAPI中,您应该能够调用GetSystemFirmwareTable来检索SMBIOS表,然后解析该表以提取这些信息

看到这个了吗

还有这个

ruslik提到的另一个选项是使用WMI,如下所述

(您正在查找Win32_PhysicalMemoryArray类型的对象)


我不知道哪条路更容易。两个都很难。< /P>在C或C++中很难。您必须使用暗示COM的WMI。一个简单的解决方法是vbs:并非每个制造商都将其名称写入其RAM模块上的EEPROM中,这是毫无价值的,因此,即使您找到了访问此数据的方法,它也可能没有您想要的所有内容。您不需要ring0吗?我没有得到具体说明!如果OP在嵌入式系统或MS-DOS上运行,则他不会。否则,当然,您需要安装一个驱动程序,允许您从用户空间使用环0功能,或者希望操作系统已经提供了一些等效的功能。呵呵,在Windows上,你可以简单地远程控制HWINFO或类似的程序。我的答案是一个开始步骤指针,而不是一本完整的食谱。@ruslik,没有,但您可能需要管理员权限-例如看看CPU-Z。@iconiK很抱歉让您失望,但如果您查看cpuz可执行文件的结尾,您会发现几个驱动程序。它们被保存为临时文件并加载,因此它使用ring0。