7 月 21
ようやく某イ○テルの中の人から送られてきたパッチをベースに改良を行ないました。近いうちに、正式版をリリースする予定です。
◇公式サイト
【変更点】
◇WinRing0.dll (1.2.0.15)
- API の追加および仕様変更
⇒ 詳細はマニュアルをご覧ください。1.0.x/1.1.x とは一部互換性がありません。が、このライブラリを使おうという方なら修正は一瞬で出来るかと思います。
InitializeDll → InitializeOls
DeinitializeDll → DeinitializeOls
【ダウンロード】
6 月 29
3月頃に某 CPU メーカの中のひとからパッチが届いていながら今の今まで放置しておりました。
CrystalDiskInfo の方もようやく一段落という感じなので、さすがにそろそろ CrystalCPUID 5 -Estel- の開発を再開しようと。となると、OpenLibSys の API も定義しなければならない。そうなると、コアライブラリである WinRing0 のバージョンアップも必要に… という感じです。
早速取り掛かってはみたもののコーディングだけでなくマニュアルの修正も必要なので、それなりに時間がかかりそうな感じです。やる気さえあれば 4~5 時間で出来そうな作業量ではありますが、やる気パワー全開というわけでもないので、のんびりやるとしますかね。
6 月 11
おかげさまで本日 1 万ヒットを達成しました。
OpenLibSys.org は掲げている目標が高すぎたためか、進捗が芳しくないのが現状ではありますが、WinRing0 はいくつかのプロジェクトで実際に使用されていますし、開発者向けのライブラリとしてある程度役にはたったと思っています。
SysInfo を利用したいという問い合わせも何件も頂いておりますし、今年度中には SysInfo から OpenLibSys に完全に移行できるようがんばりたいと思います。
まぁ、なんにせよ大本命の CrystalCPUID 5 -Estel- が出るまではこんな調子ですかね。CrystalCPUID 5 -Estel- をリリースするのはまだまだ先になりそうですが、リリースの暁には Powered by OpenLibSys.org と大々的にアピールする予定。
3 月 13
某 CPU ベンダの方から指摘を受けて、WinRing0 の API を再確認したのですが、ReadPciConfig* を始め、エラーの通知方法に問題があるということを再認識しました。現在は、エラーが発生した場合 0xFF, 0xFFFF, 0xFFFFFFFF を返す(実は、マニュアルに書いてません…)ため、実際にその値が読み込めたのかエラーが発生したかを区別することができません。この仕様は、PCI Debug Library for Win32 と合せたのですが、改めて PCI BIOS などの資料を読み返してみると問題ありな感じです。
これから他の API も含めて一貫性のあるエラーコードの返し方を検討したいと思います。既存のコードとの互換性を確保するため、エラーコードの取得に対応した API には Ex を末尾につける等の方針で対処したいと思います。
また、InitializeDll と UninitializeDll は API 名が不適切なため変更する予定です。InitializeOls と UninitializeOls かな。
一応、今年度内のリリースを予定しています。
【2008/3/13 7:30 追記】
- 寝ながら考えたのですが、エラーが発生したときに 0xFF, 0xFFFF, 0xFFFFFFFF を返すこと自体は何も問題がありませんね。エラーが発生した場合不定値が返るよりはすっきりします。問題は、エラーが発生しているかどうかを判断する手段がないことでした。
- 基本的に、PCI デバイスが存在し、適切なコンフィギュレーション空間へのアクセスであれば、(根拠はありませんが)失敗することはあまりないと思うので問題が発生することは少ないとは思います。
- 返り値はひとつの値しか返せませんが、PCI BIOS は複数のレジスタを活用して、取得した値やエラーコードを同時に通知しているので、このような問題が起こるのは仕方のないことかもしれません。
- 実際、エラーコードが引数経由で取得できるよう変更したところで value = PciConfigRead(); な使い方が多くなりそう。
3 月 11
【修正点】
- OlsApi.h の WrmsrEx において “DWORD_PTR affinityMask” とすべきところを “DWORD affinityMask” としていた不具合を修正。OlsApi.h を使用していない方には影響がありません。 (Thanks インテルの中の人)
【ひとりごと】
やっぱり、オープンソースしていると良いことあるな。ちなみに、通常なら型の不一致の警告が出てくれそうなものですが、.DEF でエクスポートしているため警告が出てくれず気がつきませんでした。
なんというか、自分が思っている以上に公開したソースコードは読まれているんだなぁ…
3 月 09
某最大手 CPU ベンダの方から CrystalDMI + WinRing0 のライセンス等に関する問い合わせメールが届きました。なんでも、CrystalDMI をベースに機能拡張して、社内で使用したいとのこと。詳しいことは良くわかりませんが。
私も某 Z のように IDF デビューしたいものです。いつの日か、IDF のレポートを眺めていたら CrystalXXXXX のスクリーンショットが!!みたいな奇跡が起こらないかなぁ~と。
3 月 06
HighRez の InpOut32 and InpOutx64 で、InpOut32WinRing0 なるスタブライブラリが公開されていることに気がつきました。
OpenLibSys.org 盛り上がってきたのではないでしょうか。
3 月 06
急に OpenLibSys.org のアクセスが増えたので、何事かと思いアクセスログをチェックしたところ WinRing0 を用いた新たなプロジェクトを見つけました。
CPU の温度測定は最近の流行のようですね。私には、もはや参戦する余力はありませんが、こういう形で貢献できるとは光栄です。
Real Temp - New temp program for Intel Core processors
2 月 05
WinRing0 がハードウェアアクセスに興味を持った方々のお役に立てているようで何よりです。