我想開發一個C函數獲取一些主板信息(名稱,ID等),但我找不到這些信息存儲在哪裏。我看了一下CPUID,但是我找不到與主板相關的任何東西(儘管很多關於CPU的信息)。如何使用CPUID查找主板信息?
有誰知道從哪裏可以得到這些信息?
非常感謝。
我想開發一個C函數獲取一些主板信息(名稱,ID等),但我找不到這些信息存儲在哪裏。我看了一下CPUID,但是我找不到與主板相關的任何東西(儘管很多關於CPU的信息)。如何使用CPUID查找主板信息?
有誰知道從哪裏可以得到這些信息?
非常感謝。
CPUID返回有關CPU本身的信息(因此名稱);它不會返回有關主板的信息。你的操作系統可能會有一些查詢ACPI數據的方法,這可能(如果主板的製造商不屑於記錄這些信息),你可以找到你想要的;但是,確切的方法取決於您的操作系統。
如果您要編碼裸機,您的第一站是ACPI tables。特別感興趣的可能是DSDT中的OEMID和OEM表ID;你也可以在其他地方找到模型信息。但是,請注意,BIOS往往是full of interesting bugs,並且不能保證製造商已經填寫了任何不必要的東西來啓動Windows。
非ACPI系統通常已經過時,至少對於PC硬件而言。如果您使用的是非ACPI系統,祝您好運。在非ACPI系統上沒有標準化的主板識別信息位置。您可以嘗試根據已知硬件配置文件的表格來探測硬件和猜測,但這是您可以做的最好的選擇。
我會從dmidecode源及其引用的標準(SMBIOS/DMI)開始。
除非您嘗試創建可引導的應用程序並直接訪問硬件,否則我們需要知道將運行您的應用程序的操作系統 – Djole
這只是可啓動的二進制文件 – limp
@limp,因此您直接啓動的引導程序,而不是從Windows或其他? – bdonlan