ENGLISH page is here.
GET DinopSearchBar
サイト内検索:
HOME
VC++ TIPS
ダウンロード
DinopExifReader
DinopSearchBar
DinopSearchBar mini
DinopTabbingBar
for Firefox
大阪湾の生き物
甲子園浜の自然
甲子園浜の干潟
甲子園浜の水中
甲子園浜の野鳥
近畿の山々
植物図鑑
箕面マップ
水中機材
カメラ
ランキング
望遠鏡の世界
顕微鏡の世界
Googleのすべて
GoogleマップAPI
ニュース
読んだ本
日記
変な料理の作り方
遺伝子操作
論文紹介
デイトレード
自動売買でFX
ネットで小遣い稼ぎ
Solaris
電子工作
その他
問い合わせ
VC++用コード集
大阪湾の生き物
水中用機材
since:2000/11/15
dinopcom@gmail.com
www.dinop.comは
だいのっぷ・どっと・こむ
と読んでください。







« フォルダ内のフォルダ列挙 | メイン | CInternetSessionによるファイルのダウンロード »

チップセットの判別法




 ソフトウェア的にマザーボードのチップセット(Intel i810など)を判別する方法はいくつか考えられる。
 1つは、レジストリ情報から取り出す方法。例えばあるWindows Meマシンでは下のようなレジストリが見つかる。

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\System\0009]
"DriverDesc"="Intel 82439HX Pentium(r) Processor to PCI bridge"

 ここから、チップにIntel 82439HXが使われているから、このマシンは430HXだと判断することができる。

 しかし、このレジストリはWindowsにインストールされたドライバのための記述のため、間違えたドライバがインストールされている場合にはうまく判断できないことがある。

 ※ 同じレジストリ項目から、使われているビデオカードを判別することも可能だが、ビデオカードを交換しても古いカードのレジストリ情報が残っているため判別することができない。


 以上のような問題があるため今回はもっとスマート(?)な方法を紹介する。
 その方法は、チップセットが割り当てられているI/Oポートに直接アクセスしてしまおうというものだ。

 チップセットはPCIのデバイスとしてI/Oポートが割り当てられている。チップセットを判別するためのアクセス手順は以下の通り

 1.I/Oポート0x0CF8に0x80000000をDWORDとして書き込む
 2.I/Oポート0x0CFCからDWORD分読み込む

 たったこれだけの操作でいい。例えば読み出した結果が0x71208086ならばi810となる。

0x71208086のうち、下位の2Byte(0x8086)はVendor IDを示す。Intelは0x8086だ。
0x71208086のうち、上位の2Byte(0x7120)はDevice IDを示す。Intel i810は0x7120だ。


【チップセット例】

  0x71208086  i810
  0x71248086  i810E
  0x74101022  AMD-760
  0x06301039  SiS 630









Copyright (c) 1999-2007 issei. All rights reserved. (運営者情報