3

我正在尝试开发一个 C 函数来获取一些主板信息(名称、ID 等),但我找不到这些信息的存储位置。我查看了 CPUID,但在那里找不到与主板相关的任何信息(尽管有很多关于 CPU 的信息)。

有谁知道我从哪里可以得到这些信息?

非常感谢。

4

2 回答 2

6

CPUID 返回有关 CPU 本身的信息(因此得名);它不返回有关主板的信息。您的操作系统可能会通过某种方式查询 ACPI 数据,这些数据可能(如果主板制造商愿意记录此类信息)有您正在寻找的信息;但是,执行此操作的确切方法取决于您的操作系统。

如果您正在对裸机进行编码,那么您的第一站就是ACPI 表。特别感兴趣的可能是 DSDT 中的 OEMID 和 OEM Table ID;您也可以在其他地方找到模型信息。但是请注意,BIOS 往往充满了有趣的错误,并且无法保证制造商已经填写了启动 Windows 并非绝对必要的任何内容。

非 ACPI 系统通常已经过时,至少对于 PC 硬件而言。如果您使用的是非 ACPI 系统,那么祝您好运。非 ACPI 系统上的主板识别信息没有标准化的位置。您可以尝试根据已知硬件配置文件表来探测硬件并猜测,但这是您能做的最好的事情。

于 2011-07-12T14:55:15.787 回答
1

我将从dmidecode源和它引用的标准(SMBIOS/DMI)开始。

于 2011-07-12T17:15:08.880 回答