2012-07-16 12 views
6

Windows上でシステムチップセットのノースブリッジ、サウスブリッジ名、その他のハードウェア情報をプログラムで見つける方法はありますか?私はWMIがこの情報を提供しているとは思わない。 hwinfocpuinfoのようなツールがどのようにこの情報を見つけるかを調べようとしています。チップセットのノースブリッジ、サウスブリッジ名、その他のハードウェア情報をプログラムでWindows上で見つける方法はありますか?

答えて

3

人々は通常、時にはそれが(SMBIOS経由)BIOSからベンダー埋め情報に依存しているためであっても、「間違った」の情報を提供し、それは有用な情報多くの時間を提供するために失敗したWMI、を通じてものの、この種の操作を行いますが特定のハードウェア部分と通信するのではなく、頻繁に空または間違ったものになることがあります。

RAM情報を取得する前にこの経験をしました。 WMIは間違ったBIOS情報を提供しました。RAMチップには、私が通信するために必要な特別なSPD(Serial Presence Detect)チップが付属しています。結局私の雇用主はCPUID APIを選択しました。ここで

CPU-Zの作者はインタビューでこのテーマについて少し語っ:

http://www.techpowerup.com/mobile/reviews/Interviews/Franck_Delattre/1.html

このような情報を得るには、ドライバを使ってカーネルモードでPCIコンフィグレーションスペースと通信する方法や、これを行う代替APIを探す必要があります。

ここで私はその時を経てきたいくつかのリンクです:また

http://www.codeproject.com/Articles/35378/Access-Physical-Memory-Port-and-PCI-Configuration

http://support.microsoft.com/?scid=kb;en-us;253232&x=3&y=13

http://www.hollistech.com/Resources/Misc%20articles/getbusdata.htm

http://www.osronline.com/showThread.CFM?link=176210#T4

が、私は約言及する価値があると思いますWindowsのSetupDi機能は時々ablです電子メールでは不可能な情報を提供します。

+0

ありがとうございました。私はSetupDi Apiに行きました。 WMIよりも優れているように見えますが、ほとんどの場合、依然として信頼性がありません。この種のものについてまともな例を見つけることがどれほど難しいのかは驚くべきことです。もし私が信頼できる方法を見つけることになったら、私はgithubに投稿します:) – ivymike

+0

@ivymike ok、私はRAM情報で運が悪くなかったので、SPDチップから情報を抽出するための信頼できるソースはありませんでした。私は古いPCのマザーボード上に構築された特定のICH(Intel southbridge)用のSMBUSを有効にする簡単なドライバを構築することができました。このチップから情報を抽出するには、SMBUSを有効にする必要があります.SMBUS通信モジュールとSPDデータを解釈するためのperlスクリプトが含まれています。とにかく、私はコンセプトの証拠のようにしました。特定のICHバージョンのデータシートに基づいて動作しました。 –

+0

@ivymike ...特定のPCI構成スペースアドレス。ハードウェア仕様は、同じベンダーのバージョン間でも変更されます。私はベンダーのリストをサポートする必要があります。これはCPUID APIの機能とlm-sensorsパッケージの機能です。唯一の信頼できるソースは、この種の大規模なハードウェアをサポートする努力をするだろう。 –

関連する問題