マザーボード情報 (名前、ID など) を取得する C 関数を開発しようとしていますが、これらの情報が保存されている場所が見つかりません。CPUID を調べましたが、マザーボードに関連するものは見つかりませんでした (ただし、CPU に関する情報はたくさんあります)。
これらの情報をどこから入手できるか知っている人はいますか?
どうもありがとう。
マザーボード情報 (名前、ID など) を取得する C 関数を開発しようとしていますが、これらの情報が保存されている場所が見つかりません。CPUID を調べましたが、マザーボードに関連するものは見つかりませんでした (ただし、CPU に関する情報はたくさんあります)。
これらの情報をどこから入手できるか知っている人はいますか?
どうもありがとう。
CPUID は、CPU 自体に関する情報を返します (名前の由来)。マザーボードに関する情報は返しません。お使いの OS には ACPI データをクエリする何らかの方法がある可能性が高く、(マザーボードの製造元がそのような情報をわざわざ記録している場合) 探しているものが含まれている可能性があります。ただし、これを行う正確な方法は、OS によって異なります。
ベア メタルにコーディングしている場合、最初の目的地はACPI テーブルです。特に興味深いのは、DSDT の OEMID と OEM テーブル ID です。他の場所でもモデル情報が見つかる場合があります。ただし、BIOS は興味深いバグでいっぱいになる傾向があり、製造元が Windows を起動するために絶対に必要でないものを埋めているという保証はありません。
非 ACPI システムは、少なくとも PC ハードウェアでは、一般的に時代遅れです。非 ACPI システムを使用している場合は、幸運を祈ります。非 ACPI システムでは、マザーボード識別情報の標準化された場所はありません。ハードウェアを調べて、既知のハードウェア プロファイルの表に基づいて推測することもできますが、それが最善の方法です。
dmidecodeソースとそれが参照する標準 (SMBIOS/DMI)から始めます。