------------------------------------------------------------------------------
         Name : SysInfo.dll
      Version : Release 200
    Developer : hiyohiyo (Crystal Dew World)
         Mail : hiyohiyo@crystalmark.info
          Web : Crystal Dew World (http://crystalmark.info/)
  Environment : Windows 2003/XP/2000/NT4/Me/98/95 (Longhorn)
      Licence : Freeware
       Update : 2004/9/5
------------------------------------------------------------------------------

[Special Thanks]
 To
 Fab51 [ ita ] (http://fab51.com/)
 CCPUID [ Cappuccino ] (http://www.cafe-au-lait.info/)
 CPU-Z [ Franck Delattre ] (http://www.cpuid.com/)
 SysID [ Morf ] (http://home20.inet.tele.dk/sysid/)
 WCPUID [ H.Oda! ] (http://www.h-oda.com/)
 CPUMSR [ Petr Koc ] (http://www.cpuheat.wz.cz/)

[Library]
 PCI Debug Library for Win32
 kashiwano masahiro (http://www.otto.to/~kasiwano/)
 Customized by hiyohiyo

[ Reference ]
 sandpile.org (http://sandpile.org/)
 Linux PCI ID's Project (http://pciids.sf.net/)
 PCIDatabase.com (http://www.pcidatabase.com/)

- in English [ Update Information ] -----------------------------------------

<R200 2004/9/5>
- Fix about loading NT driver

<R195-199 missing number>

<R194 2004/8/29>
- Update database

- in Japanese [ 更新履歴 / 開発日記 ] ---------------------------------------

<R200 2004/9/5>
・To 氏のおかげで複数プロセスからドライバを制限なく使えるようになりました。
→ ほんと長いこと悩んでいた問題がついに解消!!

<R195-199 欠番>
・長年の悩みが解消されたたためジャンプアップ

<R194 2004/8/29>
・データベース更新

<R193 2004/8/22>
・C3 の一部で L2Cache が表示されない不具合を修正
・K7 版 Sempron のオリジナルクロックが 133MHz となる不具合を修正
・データベース更新

<R192 2004/8/18>
・Socket 478 を LGA775 と一部誤認識するようになっていた不具合を修正

<R191 2004/8/11>
・データベース更新

<R190 2004/8/3>
・データベース更新
・E7210 と 875P の識別に対応

<R189 2004/7/29>
・改造によって生み出される？ Mobile Athlon XP-M (Thorton) に対応

<R188 2004/7/29>
・Socket 754/A 版の Sempron に多分対応
・LGA775 (Socket T) -> LGA755 に表記変更

<R187 2004/7/25>
・データベース更新
→ XGI Vorari をはじめ多数のデバイスに対応(久しぶり...)

<R186 2004/7/14>
・NX 対応強化

<R185 2004/7/8>
・Socket T (LGA775) → LGA775 (Socket T) に表記変更
・データベース更新

<R184 2004/7/1>
・Socket 775 → Socket T (LGA775) に表記変更
・データベース更新

<R183 2004/6/30>
・Xeon (Nocona) への対応強化
→ まさか SpeedStep が有効になるとは・・・。
・データベース更新

<R182 2004/6/22>
・Socket 775 を識別できない不具合を修正
・データベース更新
・最新デバイスに多数対応

<R181 2004/6/20>
・x64 対応

<R180 2004/6/13>
・データベース更新

<R179 2004/6/10>
・Sempron (Paris) に対応
・EM64T の検出に対応 (thanks Cappuccino 氏)
・AMD64 関連の対応強化 (thanks Cappuccino 氏)

<R178 2004/6/7>
・Pentium M (Dothan) の識別にまだ問題があったため修正 (thanks 大箸氏)

<R177 2004/6/7>
・Pentium M (Dothan) の Model は 0xC ではなく 0xD であるとのこと。急遽修正
　(thanks 大箸氏)

<R176 2004/6/4>
・新コア Prescott に一部対応
→ EM64T の検出は未対応(フラグの位置がまだわかりません)

<R175 2004/6/2>
・Socket 939 用の Athlon 64 FX のコードネームを誤判定する不具合を修正

<R174 2004/5/29>
・データベース更新

<R173 2004/5/16>
・Pentium M/Celeron M の対応ソケットを Socket 478 から Socket 479 に修正
・Celeron M (Dothan-1024K) に対応
・データベースを更新

<R172 --------->
・171 リリース時に誤って 172 としていたので「欠番」となりました。

<R171 2004/5/13>
・Pentium M 755 のオリジナルクロックが正しく取得できない不具合を修正

<R170Beta 2004/5/8>
・Dual K7 環境で二つ目のプロセッサの倍率を変更する前に 3000ms のウェイトを用意
→ Multiplier Management は使えません!! これから調整予定

<R169 2004/5/8>
・データベース更新

<R168Beta 2004/5/1>
・Pentium M (Dothan) のオリジナル倍率取得に多分対応
・C3 の倍率変更部分を修正

<R167Beta 2004/4/28>
・C3 の倍率変更部分を修正
→ 安定度が上がると良いのですが...

<R166 2004/4/22>
・データベース更新
・ソースコード内コメントの微調整(著作権表記等)

<R165 2004/3/31>
・データベース更新

<R164 2004/3/27>
・PCR がセットされていないときのみセットするように変更

<R163 2004/3/27>
・PCI Configuration Register を変更するタイミングを倍率変更の直前に変更
・倍率変更のたびにレジスタを設定するようにしました

<R162 2004/3/25>
・AMD 760 系で変更すべきレジスタがずれていた不具合を修正

<R161 2004/3/25>
・KT133 系で変更すべきレジスタがずれていた不具合を修正

<R160 2004/3/24>
・AMD-761 の Device ID を追加

<R159 2004/3/24>
・KT133 系の倍率変更に対応

<R158 2004/3/24>
・AMD 760 系の倍率変更に対応
・K7 デュアル環境では両方同時に倍率変更命令を送るように変更

<R157 2004/3/17>
・Tualatin の倍率テーブルを修正 (thanks ぶっちー 氏)
・CpuInfoX86-64.exe の高速化
・データベース更新

<R156 2004/3/16>
・Desktop 用電圧設定にした際、リフレッシュ後 Mobile 用電圧表示に戻る不具合を修正
・SpeedStep への対応強化(Tualatin のみ)
・Coppermine Slot 1 を識別できない不具合を修正

<R155 2004/3/15>
・AMD64/IA-32e 用のドライバの名前を間違っているという致命的な不具合を修正

<R154 2004/3/10>
・K7 デスクトップ版の電圧表示のサポート

<R153 2004/3/9>
・CG リビジョンと Newcastle(??) のドキュメントが出ていたので対応。

にしても CPUID FF0h とは思い切ったことをしてくれるのぉ〜 > Newcastle 
いよいよ Extended Family の出番か!?

<R152 2004/3/7>
・DTR Athlon 64 でオリジナルクロックが 4 倍となる問題を修正 (thanks 大箸 氏)

<R151 2004/3/2>
・Mobile 化改造を行った Athlon XP のオリジナルシステムクロックを誤判定する問題
　を一部解消(thanks ita 氏)

<R150 2004/2/29>
・Rise 系 CPU を誤判定してしまう不具合を修正 (thanks くにしこ 氏)
・データベース更新

<R149 2004/2/22>
・IA-32e に対応
・AMD64, IA-32e の総称として x86-64 を使用
・CpuInfoAMD64.exe/sys を CpuInfoX86-64.exe/sys に変更
・動作倍率の情報を更新できないことがある不具合を修正

<R148 2004/2/16>
・K7/K8 Multiplier における電圧変更時の不具合を修正 (thanks tsukasam 氏)

<R147Beta 2004/2/16>
・K7/K8 Multiplier において電圧を変更する際一段階ずつ変化させるようにした。

<R146 2004/2/16>
・ProcessorSerial 関連の不具合を修正
・Socket 情報の整理
・データベース更新
・新チップセット＆ビデオチップセットに多数対応(たまには対応作業しないと...)

<R145 2004/2/12>
・Pentium 4 (Prescott) を Pentium 4 HT (Prescott) と誤認識する不具合を修正

<R144 2004/2/11>
・Mobile Celeron (Northwood-256K) を誤判定する不具合を修正
・改造 Pentium 4 に対応
・データベース更新

<R143 2004/2/8>
・Athlon MP の識別力を強化
・Athlon MP (Barton) の Original System Clock を 133MHz に修正

<R142 2004/2/5>
・Socket / Slot 識別関連の不具合を修正

<R141 2004/2/4>
・次世代 Pentium / Xeon コードネームに対応 ( Nocona, Tejas ... )
・次世代 K8 コードネームに対応 ( San Diego, Athens, Troy, Venus ... )
・Prescott のキャッシュ情報に対応
・Socket / Slot 識別関連の不具合を修正

<R140 2004/2/3>
・Prescott の L1Data Cache サイズが表示されない問題を修正
・Socket A / Slot A の識別機能を強化 (今更ですが...)

<R139 2004/1/31>
・AMD64 環境におけるデフォルトクロック測定法を MMT に固定(今後変更可能性アリ)
・CpuidAMD64.exe -> CpuInfoAMD64.exe にファイル名を変更
・データベース更新

<R138 2004/1/29>
・AMD64 環境での動作を認識できるようにした。

<R137 2004/1/27>
<R136 2004/1/25>
<R135 2004/1/23>
・AMD64 への対応作業

<R134 2004/1/23>
・AMD64 対応のための改良
→ OS が x86 版か AMD64 版かを識別できないので、ドライバがロードできない場合は
   AMD64 版かもしれないということでとりあえず AMD64 バイナリを実行し、倍率等の
   情報を取得する
・デバイスドライバのロードに失敗した場合に表示していたエラーメッセージを廃止。
→ AMD64 版の識別に対応でき次第復活予定... なくても良いかも。

<R134 2004/1/23>
・AMD64 非対応安定板

<R133 2004/1/22>
・Prescott 対応最終準備
・データベース更新

<R132 2004/1/19>
・AMD64 への対応強化

<R131 2004/1/16>
・cpuidamd64.exe を呼び出し、倍率＆電圧の表示＆変更に(多分)対応
・(CPU/対応OS)アーキテクチャ情報の取得に対応

<R130 2004/1/15>
・CrystalCPUID 3.0.0 への対応
・AMD64 への対応準備
・ドライバ読み込みに失敗した際のエラーダイアログを廃止
→ 呼び出し元のアプリケーションが表示する
・データベースの更新

<R129 2004/1/11>
・Pentium III Xeon (Tanner) を Pentium III (Katmai) と誤認識する不具合を
  修正 (thanks Hon 氏)

<R128 2004/1/11>
・DMI 関連情報の取得をサポート
・データベース更新

<R127 2004/1/9>
・Microcode ID と Platform ID に対応していない Pentium PRO/Pentium II 環境で
  エラーとなる不具合を修正

<R126 2004/1/8>
・Transmeta Crusoe 5700/5900 に対応
・AMD Athlon 64 L2=512KB 版を全て Newcastle として識別していた問題を修正

<R125 2004/1/5>
・CpuInfo.dll と統合
  NT 用のデバイスドライバに CpuInfo.sys を追加(CrystalCPUID 専用)

<R124 2004/1/1>
・Microcode Revision の取得に対応
・Platform ID の取得に対応
・データベース更新

<R123 2003/12/23>
・マルチメディアタイマーの精度変更タイミングを修正

<R122 2003/12/20>
・データベース更新
・クロック周波数の測定機能を若干変更しました。

<R121 2003/12/9>
・Athlon 64 (Newcastle) に対応
・Pentium 4 SSE3 (Prescott) に暫定対応

<R120 2003/12/4>
・Celeron M (Banias-512K) に対応

<R119 2003/11/30>
・Mobile Athlon XP-M のオリジナル倍率の取得方法を修正 (thanks ita 氏)
・C3 関連の倍率テーブルを更新
・データベース更新

<R118 2003/11/11>
・Mobile Pentium 4 を Mobile Pentium 4 HT と誤判定することがある問題を修正
  (thanks 氏 AGU 氏)
・データベース更新

<R117 2003/11/9>
・Pentium 4 HT Extreme Edition (Gallatin) の HT を削除
-> さすがに冗長かなと...
・データベース更新

<R116 2003/10/27>
・Transmeta の新 CPU Efficeon のサポートを強化
・Mobile K7 の倍率テーブルを最新の情報に更新
・Nehemiah の倍率テーブルを最新版に更新
・データベース更新
・データベースのファイル形式変更(ファイルサイズ縮小のため)
・多くの最新デバイスに対応

<R115 2003/10/13>
・Pentium M で動作倍率が正しく取得できない問題を修正!! (thanks はせりん 氏)
-> ずいぶんと長いことこの問題に苦しめられましたが、今度こそ大丈夫かと...

<R114 2003/10/13>
・K7/K8 Multiplier を実装しました。(プロジェクト LoveHammer)
-> CPUID 0x80000007 に対して EDX が 0x00000007 以上の値を返す場合のみ利用可能
   とはいえ、現在この機能を利用できるのは CrystalCPUID だけなんですけどね...
・Athlon 64 FX を Athlon FX としていた不具合を修正 (thanks Cappuccino 氏)

<R113 2003/10/12>
・Banias の動作倍率が正常に取得できない問題を修正
・Banias のコードネームがいつの間にか変になっていたのを修正
　(thanks はせりん 氏)

<R111/112 2003/10/11>
・大丈夫だと思っていた Opteron / Athlon 64 判定部分に問題があったので修正
-> 今度の今度こそ大丈夫だと思います。ご迷惑おかけして申し訳ございません。

<R110 2003/10/10>
・Opteron / Athlon 64 において誤判定する問題を修正
-> 今度こそ大丈夫だと思う
・Optern / Athlon 64 の BrandID に対応
-> 8bit 版における上位 3 bit / 12 bit 版における上位 4 bit を表示します。
   ∴他のアプリと異なる結果となる場合があるかと思います。
・データベース更新

<R109 2003/10/10>
・Opteron / Athlon 64 において倍率を変更した場合に Mobile Athlon 64 と
　誤認識する問題を修正

<R108 2003/10/7>
・"-M" に対応
-> Mobile Pentium III-M / Mobile Pentium 4-M / Mobile Athlon XP-M
-> Mobile Pentium 4 と Mobile Pentium 4-M の識別が可能に!!
・Mobile Pentium 4 HT に対応
・Pentium 4 HT Extreme Edtion に対応
-> HT は必要ない気もするんですが...
・Pentium M (Banias) の動作倍率取得手法を改良
・Mobile Athlon XP-M の対応強化
・NSC Geode に対応
・SiS のよくわからない CPU にそれとなく対応
・UMC のよくわからない CPU にそれとなく対応
・386/486 の識別力強化
・データベース更新

<R107 2003/9/25>
・よねさん 氏の協力のおかげで Opteron / Athlon 64 の Multiplier をサポート完了
・Opteron / Athlon 64 の Original System Clock の不具合を修正
・Opteron の BranID に対応
-> UP/DP/MP の判別に対応
・Athlon 64 FX にもそれとなく対応
-> 多分大丈夫
・データベース更新

<R106 2003/9/20>
・Celeron (Northwood-128K) と Mobile Celeron (Northwood-256K) を
　誤判定するようになっていた問題を修正 (thanks 中川 氏)
・Celeron (Northwood-128K) のキャッシュサイズを随分長いこと 256K と
　していた不具合を修正(最悪です。ごめんなさい)
・データベース更新

<R105 2003/9/17>
・Xeon と Xeon MP の判別に不具合があったので修正 (thanks 啓 氏)

<R104 2003/9/17>
・データベースの更新
・Cappuccino 氏の cpuid.pas と教えてもらった情報を元に CPU サポートを強化

<R103 2003/9/13>
・データベースの更新
・CPUSupport.html の更新

<R102 2003/9/9>
・ドライバのロードに失敗したとき、誤った動作倍率を取得する問題を修正

<R101 2003/9/8>
・WRMSR 命令発行にそれとなく対応
・ファイル構成の変更
-> CpuInfo.dll への対応準備
・Duron (Applebred) に対応
・プロセスルールの表示機能を追加
・データベース更新

<R100 2003/9/1>
・CrystalMark09 に対応(ということにしておく)
-> 実際はなにも変わっていないのですが...
・データベース更新

記念すべき Release 100 だというのに特に新要素はなし(^^;

<R99 2003/8/27>
・SSE3 の検出に対応
・VisualC++ 7.1 にコンパイラを変更
-> 9x で正常に動作しない問題を修正しました。
・DirectX のバージョン情報取得方法の変更
-> 過去バージョンとの互換性が一部なくなりました。
・不必要となった項目を削除
・変数の初期化方法を変更
・Opteron の Socket 情報が間違っていたので修正 (thanks 前原 氏)

記念すべき Release 100 に向けて不必要な部分を除去し、構造をすっきりさせました。

<R98 2003/8/21>
・データベースの更新

<R97 2003/8/14>
・コンパイラを VC7 から VC6 に変更
-> 互換性向上？本質的にはソースに問題があるわけでしょうけど...

<R96 2003/8/12>
・Win9x でアクセス違反が出て起動しなくなっていた問題を修正
・ProSavage DDR 関連のデータベースを修正
・データベース更新

<R95 2003/8/6>
・Feature Flag (ECX) に対応
-> いつの間にか拡張されてました。
・AMD のキャッシュ詳細情報の取得機能を追加
・データベース更新

<R94 2003/7/28>
・Pentium M の動作倍率周りを修正
・データベース更新
・865G のグラフィックスを 855G と誤記していたのを修正

<R93 2003/7/21> - Test Release
・Pentium M の動作倍率を正規の方法で取得
-> 今までは NameString から取得しておりました(^^;
・Pentium M の最大動作倍率だけでなく現在の動作倍率が取得可能に(未保証)

Pentium M は特に資料が少なく途方に暮れていたのですが、ようやくそれっぽい資料を
見つけたので早速実装してみました。

<R92 2003/7/20>
・データベース更新
・Pentium M の動作モードが SDR になっていたので QDR に変更...
-> 随分前に変更したつもりだったのですが、修正ミスがあり機能していませんでした。
・Willamette のスペルを Willamete としていた個所を修正
・Intel 852GM/855GM が同じデバイスIDで区別できないので一緒にしときました。
-> リビジョンぐらいしっかりと変えてくれぇ〜

<R91 2003/7/14>
・データベース更新
・Thorton (Barton の L2 256KB 版) の正式名称が Athlon FX になるらしいので対応
・Athlon 64 にそれとなく対応

<R90 2003/7/3>
・データベース更新
・AMD Thorton に恐らく対応
-> いまさら新モデル(!?) Athlon 64 をさっさと出してください〜〜。 
・Opteron で動作しない(再起動する)問題を修正
-> というか動作倍率の取得をあきらめた。
・動作倍率が取得できない場合、表示がおかしくなることがあった問題を修正
-> VirtualPC 等エミュレータ上でしか起こらない問題ですがまぁ、一応。

<R89 2003/6/27>
・データベース更新
-> 最新デバイスにかなり対応(GeForce FX 5900 他)

<R88 2003/6/17>
・データベース更新

<R87 2003/6/10>
・クロック周波数可変プロセッサ対策 (thanks ぬじぬじ 氏)
-> 負荷をかけてからクロック周波数を測定するように変更しましたが...動作未確認
・865G/PE/P への対応完了
・データベース更新

<R86 2003/6/6>
・PCI BIOS によっては PCI Device 情報取得中にコケる問題を修正
・865PE/G/P & ICH5/R と 852GM/855GM への対応強化
・データベース更新

<R85 2003/5/31>
・データベース更新

<R84 2003/5/20>
・データベース更新
・Pentium 4 FSB 800MHz 版に今更ながら対応
-> 対応していた気でいましたが、少しもコードを書いていなかった(^^;

<R83 2003/5/15>
・データベース更新
・Transmeta Crusoe のクロックを double -> int に変更

<R82 2003/5/6>
・C3 Nehemiah のキャッシュサイズの取得がうまくいっていない問題を修正
・Opteron の System Bus & Data Rate を非表示に変更
・データベース更新

<R81 2003/4/25>
・Opteron の倍率取得に対応
・今度こそ Pentium !!! -> Pentium III に変更

<R80 2003/4/21>
・バグ修正
・データベース更新

<R79 2003/4/9>
・Transmeta Crusoe の取得情報を強化
・Batron の FSB に関するバグを修正
・データベース更新

<R78 2003/4/3>
・Celeron (Banias) -> Mobile Celeron (Banias)
・GeForce FX 関連対応強化
・Radeon -> RADEON (RADEON 関連も対応強化)
・データベース更新

<R77 2003/3/26>
・Pentium !!! -> Pentium III に変更 (CrystalMark06 は除く)

<R76 2003/3/24>
・データベース更新

<R75 2003/3/17>
・Banias 関連バグ修正

<R74 2003/3/13>
・Banias 対応強化
　-> Pentium M と Celeron の識別 および Cache 情報に対応
　-> 動作倍率に関しては現在情報収集中...(一応対応していますが)

<R73 2003/3/6>
・NT 系の環境では CrystalMark / CrystalCPUID を複数同時起動
　できなかった問題をようやく修正
・Banias に暫定対応 (L1 および Multiplier はデータシートが公開され次第対応)
・データベース更新

<R72 2003/2/27>
・データベース更新

<R71 2003/2/18>
・VIA CPU の表示不具合を修正
・データベース更新
・バグ修正

<R70 2003/2/14>
・Celeron (Willamette-128K/Northwood-128K) の 2nd Cache 情報を今更サポート
-> 英語のデータシートはずいぶん前に更新されていたのに気がつきませんでした。
-> 日本語のデータシートをダウンロードするのはもうやめようと思います(^^;
-> 更新遅すぎ(1年以上更新ないんですけど...)
・データベース更新

<R69 2003/2/10>
・APIC / CPU Type / Socket 情報等を新規サポート
・データベース更新

<R68 2003/2/5>
・SiS の最新チップセットに対応 SiS 655 他
・データベース更新

<R67 2003/2/4>
・Radeon 9100, nForce2 内蔵 VGA に対応
・データベース更新

<R66 2003/1/31>
・未知の PCI デバイス数をカウントする機能を強化
・Intel 7500/7501 に対応
・データベース更新
・SysInfo.sys をカレントディレクトリ以外からロードできないように修正
・SiS South Bridge 誤判定問題解消？
-> Device ID の一覧を見て確信しました!!識別できないということを。
-> North & South の組み合わせデータベースを内蔵することで解決!?
-> ただし、SiS 961/962/963 を直接識別できないため誤判定の可能性あり。

なぜちゃんと ID を割り当てないのだろうか...
Intel/NVIDIA はかなりまともに ID を割り当てているのですがねぇ...

<R65 2003/1/29>
・未知の PCI デバイス数をカウントする機能実装
・Intel 82801EB (ICH5) に対応
・Intel 865G (Springdale-G) に対応
・VIA C3 Nehemiah に暫定対応
-> 動作確認お願いいたします。(データシートがアップされ次第検証予定)

<R64 2003/1/28>
・データベース更新
・微調整

<R63 2003/1/22>
・データベース更新
・サイト移転に伴う情報更新

<R62 2003/1/14>
・デバイスドライバ内の関数に手を加えたため以前の SysInfo.sys と組み合わせて
　利用することはできません...必ず上書きコピーしてください。
-> 全て更新している方にはなんの影響もありませんが(^^;
・Mobile Pentium III と Pentium III の区別を区別できるようにした。
・データベース更新

　Pentium !!! -> Pentium III に変更したいなぁ〜と思うが互換性問題
のため踏み切れず...CrystalMark08 の正式版までにはここを変えたいなと。

<R61 2003/1/6>
・データベース検索部にバグ(!)があったのを修正
・データベース更新

<R60 2003/1/1>
・仮想 CPU 数が 1 つの場合は Hyper Threading 未対応ということにした
・データベース更新 ( VIA / SiS の最新チップセット 他 )
・ほのかなバグを修正

<R59 2002/12/24>
・DirectX のバージョンを判定する機能を強化 (DirectX9 以降に対応)

<R58 2002/12/10>
・Release57 でデータベースに欠陥があったためアクセス違反が出てしまった問題を修正
(タブ区切りのところを一箇所スペース区切り＋Cirrus Logic 情報追加部分に不具合)
・データベースに欠陥がある場合でもアクセス違反が出ないようにエラー処理を追加

<R57 2002/12/9>
・データベース更新 (最新デバイス多数,骨董デバイス少々,Kyro 1/2 の識別が可能に)
・誤判定していた CPU の判定条件を修正
・Intel 以外でも BrandID を評価していた問題を修正

<R56 2002/12/2>
・データベース更新
・Pentium 4 HT を誤判定していたのを修正
 ( 200x4 FSB の対応は来年の夏かな... )

　Opteron/Athlon 64 の対応はリリース直前になって情報が出てからになりそうです。

<R55 2002/11/25>
・データベース更新

<R54 2002/11/15>
・AMD Athlon XP FSB 333MHz 版への対応強化 (未確認)
・データベース更新

<R53 2002/11/7>
・Crusoe 関連の問題を修正
・データベース更新

<R52 2002/10/30>
・Crusoe でアクセス違反が出るという致命的な問題を修正...
-> 研究室のマシンで何気なく実行したことで発覚。

<R51 2002/10/22>
・thk 氏に VisualC++ から WMI へアクセスする方法を教えていただいたので
WMI_CS/WMI_VB を廃止し、直接 WMI へアクセスする方法を採用
-> ファイルサイズの減少＋エラー処理の強化等のメリット
・SysInfo.dll の初期化に失敗したとき２回エラーメッセージが出る問題を修正

<R50 2002/10/18>
・微調整

<R49 2002/10/9>
・データベース更新

<R48 2002/10/8>
・プライベートリリース

<R47 2002/10/6>
・PCI デバイス情報取得機能を強化
データベースは Linux PCI ID's Project (http://pciids.sf.net/) を利用させて
いただいております。(現在は CrystalMarkDX.lzh にのみ同梱)
・Release 45 から Pentium !!! を Mobile Pentium !!! と誤判定するようになって
いたのを修正

<R46 2002/10/4>
・データベース更新
・FSB 166 版 AthlonXP に(多分)対応
・PCI デバイス情報取得機能を強化

<R45 2002/9/30>
・データベース更新
・デュアルプロセッサ関連のバグを修正
・必要な機能のみを初期できるように機能強化

<R43 - R44 はプライベートリリース>

<R42 2002/9/27>
・データベース更新
・Compaq/DEC Alpha 関連の修正
・VirtualPC for Mac に少しだけ対応

<R41 2002/9/26>
・WMI(Windows Management Instrumentation) への対応を強化(VB6 対応)
※要 VB6 ランタイム or .NET Framework + WMI (XP/2000/Me は標準搭載)

<R40 2002/9/24>
・マルチプロセッサ環境において独立して CPU 情報を取得できるように機能強化
・クロック周波数測定関連の仕様を一部変更
・WMI(Windows Management Instrumentation) を利用した機能を一通り実装
※要 .NET Framework + WMI (XP/2000/Me は標準搭載)
・Alpha / PowerPC / MIPS 等を識別可能にした(未確認)
・メモリ関連の機能を実装
・デバイスドライバの初期化関連の問題を一部修正
・データベース読み込み時の不具合を修正
・データベース更新

<R37 - R39 はプライベートリリース>

<R36 2002/9/6>
・データベース更新

<R35 2002/9/4>
・データベース更新
・PCI Device の詳細情報を取得機能を搭載

<R34 2002/8/29>
・データベース更新
・South Bridge 判定コードを改良...!?

<R33 2002/8/22>
・Celeron (Northwood-128K) に関する修正
・Athlon の FSB 166x2 への対応準備...(正式対応は製品が出回ってからを予定)

<R32 2002/8/15>
・データベース更新
・キャッシュサイズに関するバグ修正

<R31 2002/7/30>
・デバイス識別機能を強化
・データベース更新
・Pentium Pro & Pentium Pro 用 OverDrive は 60/66MHz の区別が出来ないので
オリジナルクロック等の表示をしないことにした。

<R30 2002/7/18>
・HyperThreading 関連機能の強化
・データベース更新

<R29 2002/7/9>
・バグ修正(Mobile Athlon XP/4 & Mobile Duron)
・データベース更新

<R28 2002/7/1>
・未知のデバイスはベンダー名を表示
・バグ修正(Coppermine/Tualatin コア)
・データベース更新

<R27 2002/6/25>
・Mobile Celeron (Northwood-256K) に暫定対応
・PowerNow! な CPU の問題を一部修正
・データベース更新

<R26 2002/6/24>
・Mobile Athlon 4/XP / Mobile Duron (Morgan) 対応関連の調整
・SpeedStep & PowerNow! への暫定対応(動作報告求む)

<R25 2002/6/22>
・データベースの再構築＆強化
・Mobile Athlon 4/XP / Mobile Duron (Morgan) 対応関連の調整

<R24 2002/6/21>
・Mobile Athlon 4/XP に正式対応(昨日の今日ですが...)
→ただし、省エネモード？での動作は不明...次のバージョンで最終調整予定
・Mobile Athlon 4/XP / Mobile Duron (Morgan) の識別力強化

<R23 2002/6/20>
・エラーチェックが甘い箇所がありアクセス違反を起こすことがあったのを修正
・Mobile Athlon 4/XP で FSB/Multiplier を表示するのを取りやめ...
(全然合っていないので)...正確に取得する方法がわかり次第復活予定!!

<R22 2002/6/17>
・データベースの更新

<R21 2002/6/14>
・データベースの更新

<R20 2002/6/12>
・情報収集機能の修正
・データベースの更新

<R19 2002/6/11>
・情報収集機能の強化
・データベースの更新
・Hammer にほんのり対応... Family が 0xF になるようです (Pentium4 と同じ)


<R18 2002/6/10>
・正式版に向けた調整...

<R17 2002/6/7>
・(正式版に向けて)データ登録エンジンの更新
・Thoroughbred コアの倍率を取得できないことを確認...

<R16 2002/6/6>
・K6-IIIの OriginalFSB の表示をしないようにしました(判定不能なため)
・Code/Data と分離していない L1 Cache に対応(懐かしのCPUも正確に判定!!)

<R15 2002/6/6>
・PCI 情報は取得できているのに CPU 情報が取得できない場合があったのを修正
-多数の報告がありながら原因の特定に時間がかかってしまいました。もし、これで
問題が改善されないようだと・・・
・Pentium 等でも L1Cache の情報表示できるように機能強化

<R14 2002/6/5>
・Northwood がおもいっきりバグっていたのを修正
・IA-64 への対応を強化(未確認)
・CPU 対応表を製作

<R13 2002/6/3>
・Cache Speed 関連のバグを修正
・Mobile Athlon 4 関連の修正 FSB=100x2MHz

<R12 2002/6/3>
・登録を自前で行うように変更
・IDT WinChip 2/3 の動作倍率取得サポート
・Crusoe をとりあえずサポート(倍率および FSB の取得はできません)
・Cache Speed の取得をサポート (Intel 系が少々適当かも・・・)
・正式版リリースへ向けて様々な点を整備

<R11 2002/6/2>
・Ahtlon と Northwood の倍率取得関連がバグバグだったのを修正...

<R10 2002/6/2>
・PCI 系と RDMSR 系で二つあったデバイスドライバを一つに統合。トラブルが減るはず!
・かなりバグ修正
・かなりデータベースの更新

<R9 2002/5/28>
・Coppermine において ECX=2Ah REMSR bit 27 が有効か無効か試してみなければわから
ないという悲しい現実に直面したため、実際に両方を試し適切な方を表示するようにした。
・Pentium 等で的外れな表示を行っていたのを修正(Pentium では CPU の動作倍率や FSB
を取得することはできません!!P6以降の機能なのです)
・データベースの更新

<R8 2002/5/27>
・データベースの追加
・不具合の修正

<R7 2002/5/26>

・Celeron(Willamette) の L2 Cache が正しく取得できない問題に暫定対応
・Tualatin の倍率テーブルを修正
・K6-2/IIIの倍率関連の問題を修正
・データベースを更新(Intel/ATI/Trident 等)

<R6/6.1 2002/5/25>

登録していただいたデータを元にデータベースを更新
少々バグフィックス

<R5 2002/5/24>

Athlon (XP/MP含む) の倍率テーブルを一応実装
XP/MP 2100,2200 による動作確認求む!!
Thunderbird は FSB 200/266 の区別が出来ず!!
Duron は現状では完全動作(だと思う)

Northwood に関しては FSB 533 が正しく認識できるか動作確認求む!!
倍率に関しては P6/Pentium4 共に完全動作(だと思う)


<R4.x 2002/5/24>

Pentium4 関連の問題を修正しました。おそらくこれで Northwood の動作倍率も取得
出来るはずです。残るは Athlon/Duron 関係ですね♪

<0.0.5 2002/5/23>

Athlon Duron に少しも対応していなかったのを修正(^^;
SafeMode を廃止。ブルーバックしたらごめんなさい。

<0.0.4 2002/5/22> 

勇者様〜 by ククリ

ってわけでまたしても伝説の勇者様向けリリースです！！
前回は予告どおりすんごくバグバグでホントごめいわくおかけしました。
本気でブルーバックしてしまったそうですし(^^;
ようやくデバイスドライバが バグってハニー だった理由がわかったものの
Pentium !!! & Celeron (共に Coppermine)しかもっていないので
 Pentium4 (Willamette/Northwood) や Athlon / Duron 
などのテストを行えませんでした。そこで、人柱精神あふれる皆様に情報提供
していただこうというわけです!!

で、色々シミュレートした感じでは Win9x 系で実行するのがお奨めです。ハイ。
というのも、WinNT 系ではもしデバイスドライバ内で保護エラーが出た場合一撃
でブルーバックしてしまうのですが、Win9x では一般保護例外が出るだけ(!?)で
その後普通に Windows が使えるからです。まぁなんにせよ実行する前に全ての
アプリを終了しておいてください。また、とんでもない目にあっても当方責任を
とることはできませんのであしからず・・・。

できるだけ Win9x での実行よろしくお願いします。
できるだけデータ登録してくださいねぇ〜動作報告はメールでもいいです。

PCI 関連も非常に強化しました。こちらは特に問題は見当たっていないです。
多数のハードウェアデータベースのおかげでかなり実用的になってきましたが、
最新デバイスには対応してません。最新デバイスで登録の際はぜひ、本当の
デバイス名を書き込んでから登録してください。

■技術的なこと■

動作倍率を取得するために RDMSR という特権命令を使って各 CPU の固有レジスタ
を読み出すわけですが、実装されていない MSR (Model Specific Register) を
読み出そうとすると一般保護例外が発生します。NT のデバイスドライバ内で
一般保護例外が発生すると一撃でブルーバック。。。まぁ、調査してみると
アクセスバイオレーションでもブルーバックすることがわかりました。
考えてみれば当然ですね。カーネルモードだし。

ユーザーモードだと

__try{
	_asm{
		mov ecx,2Ah;
		rdmsr;
		mov ulEAX,eax;
	}
}
__except( EXCEPTION_EXECUTE_HANDLER ){
	_asm{
		mov ulEAX,0xFFFFFFFF;
	}
}

って感じのコードで例外が発生しても実行を続けることができるのですが、カーネル
モードだとこの手法が使えないんですよねぇ〜困ったことに。しかも、RDMSR は
カーネルモードでなければ使えないわけで・・・どうするよ〜〜

というわけで、カーネルモードで動作するデバイスドライバ内で例外をトラップ(?)する
方法を調査中です。これができないと本気でブルーバック連発ですよ。。。ちなみに、
今日は10回位青画面を拝みました。開発用と飛ばし用のマシンがあってよかったぁ〜

■現在とりあえず実装した

P6 (PentiumPro から Tualatin まで一応一通り) 
Pentium4 (Willamette)
Athlon (どこらへんまで対応しているかは不明)
Duron (どこらへんまで対応しているかは不明)

<0.0.2 2002/5/15> 
勇者様のみなさまこんにちは。
最低限情報収集が可能な程度のものをでっち上げたのでリリースします。

※NT 系では 管理者権限 を持ったユーザーでないと実行できません。

表示されている情報に間違いがあればそれぞれの項目の隣にあるエディットボックスや
コンボボックスに正しい情報を記入してから POST ボタンを押してください。
今回は ShellExecute でブラウザを起動しています。文字数の都合で NN を標準ブラウザ
にしている人は正常に登録できません。URL をコピーして IE 等で登録してください。

また、あまり(というか全然)エラー処理をしていないので、情報を取得できなかった場合
は -1 が表示される場合がありますが、気にせずそのまま登録してください。

んで、今回の新機能は CPU の動作倍率取得機能ですが、

・Northwood コアの Pentium4 では正常に取得できない(x16となる)

等既にわかっている問題があります。
この原因を深く調査すると Intel / AMD は動作倍率の取得方法を BIOS 開発者クラスの
技術者を対象にしてしか公開していないという現実に直面しました。で、BIOS 関連の情
報サクッと収集すればよいと思ったのですが、少なくとも AMD は有償でした。この点、
VIA(Cyrix/IDT) は BIOS 関連の資料も無償で好感が持てます。Intel の BIOS 関連資料
は現在調査中です。が、ディベロッパーマニュアルを見る限り 動作倍率の取得は非常に
アンオフィシャルな機能であることがわかります。(本当は意味があるのに[予約済み]と
表記)また、Willamete では動作倍率を取得できたのですが Northwood から場所が変更に
なったことから(現在調査中)　一般のプログラマに公開する姿勢はないようです。

・BIOS 等を解析するもしくは解析した人から情報提供を受ける
・Linux 等のソースコードを参照する

等の解決方法がありそうです... WCPUID は既に対応している模様ですし、海外のいくつ
かのCPUID 系ソフトも対応しているみたいなので対応方法はどこかにあるのでしょう。
ちなみに、裏技として NameString のクロック周波数表示から倍率を取得することが基本
的には可能ですが、2.4GHz の時に区別がつかないような気がするんですよねぇ〜ふぅ。

BIOS の解析か...。Linux のソースか...。CPU の動作倍率取得機能の実装がいかに難し
いかを思い知らされた今日この頃。。。企業秘密と守秘義務の壁がぁ〜
