Как найти информацию о материнской плате, используя CPUID? - PullRequest
3 голосов
/ 12 июля 2011

Я пытаюсь разработать функцию C для получения информации о материнской плате (имя, идентификатор и т. Д.), Но не могу найти, где хранится эта информация. Я взглянул на CPUID, но не смог найти там ничего, связанного с материнской платой (хотя много информации о процессоре).

Кто-нибудь знает, откуда я могу получить эту информацию?

Большое спасибо.

Ответы [ 2 ]

5 голосов
/ 12 июля 2011

CPUID возвращает информацию о самом CPU (отсюда и название);он не возвращает информацию о материнской плате.Ваша ОС, вероятно, будет иметь какой-то способ запроса данных ACPI, который может (если производитель материнской платы потрудился записать такую ​​информацию) иметь то, что вы ищете;однако точный способ сделать это зависит от вашей операционной системы.

Если вы кодируете на голое железо, первым делом остановитесь на таблицах ACPI .Особый интерес могут представлять OEMID и идентификатор таблицы OEM в DSDT;Вы также можете найти информацию о модели в другом месте.Однако имейте в виду, что BIOS, как правило, полон интересных ошибок , и нет никакой гарантии, что производитель заполнил все, что не является абсолютно необходимым для загрузки Windows.

НеСистемы ACPI обычно устарели, по крайней мере, для оборудования ПК.Если вы используете систему без поддержки ACPI, удачи.В системе, не поддерживающей ACPI, не существует стандартизированного расположения для идентификационной информации материнской платы.Вы можете попробовать проверить оборудование и угадать его на основе таблицы известных аппаратных профилей, но это лучшее, что вы можете сделать.

1 голос
/ 12 июля 2011

Я бы начал с источника dmidecode и стандартов, на которые он ссылается (SMBIOS / DMI).

...