7 月 16
動作確認用のサンプルアプリケーションを作りました。一応これを見れば使い方はわかるかな・・・と。また、GetProcAddress を全 API に対して行うのは大変なので、簡単に DLL を初期化できる関数例(OlsApiTypeDef.h)をつけておきました。C/C++ からしか使えませんけどね(汗
◇サンプルアプリケーション
- CPUID 命令動作確認
- RDMSR 命令動作確認
- IO アクセス動作確認(例として 440Hz の BEEP 音を鳴らしてます。)
- PCI アクセス動作確認(HostBridge の検索と全 PCI デバイスのリストアップ)
- (物理アドレスによる)メモリアクセス動作確認(例として SM BIOS バージョンを表示)
全部の機能を試せるわけではありませんが、大体雰囲気はわかっていただけるかなと。

◇Alpha2 API (@以下は序数)
GetDllVersion (仮仕様) を追加。
- GetDllStatus @1
- GetDllVersion @2
- IsCpuid @11
- IsMsr @12
- RDMSR @21
- WRMSR @22
- CPUID @23
- HLT @24
- ReadIoPortByte @31
- ReadIoPortWord @32
- ReadIoPortDword @33
- WriteIoPortByte @34
- WriteIoPortWord @35
- WriteIoPortDword @36
- ReadMemBlock @41
- WriteMemBlock @42
- SetPciMaxBusNo @50
- ReadPciConfigByte @51
- ReadPciConfigWord @52
- ReadPciConfigDword @53
- WritePciConfigByte @54
- WritePciConfigWord @55
- WritePciConfigDword @56
- FindPciDeviceById @57
- FindPciDeviceByClass @58
ダウンロード:OpenLibSys Alpha2
7 月 15
API の整理と NT4/Vista x64 での動作確認を行いました。 公式サイトの準備およびドキュメントの整備はもう少し先かなと・・・。まずは、全ての API の動作を確認できるテストプログラムを開発したいと思います。
Alpha1 API (@以下は序数)
GetDllStatus, IsCPUID, IsMSR, CPUID を追加。RDMSR, WRMSR, HLT を API 名変更。
- GetDllStatus @1
- IsCPUID @2
- IsMSR @3
- RDMSR @11
- WRMSR @12
- HLT @13
- CPUID @14
- ReadIoPortByte @21
- ReadIoPortWord @22
- ReadIoPortDword @23
- WriteIoPortByte @24
- WriteIoPortWord @25
- WriteIoPortDword @26
- ReadMemBlock @31
- WriteMemBlock @32
- ReadPciConfigByte @41
- ReadPciConfigWord @42
- ReadPciConfigDword @43
- WritePciConfigByte @44
- WritePciConfigWord @45
- WritePciConfigDword @46
- SetPciMaxBusNo @47
- FindPciDeviceById @48
- FindPciDeviceByClass @49
- デバッグはほとんどしてません(汗
- というか、一度も呼び出していない API ばっかりです。SysInfo と同じ部分が多いので一応動くとは思いますけど。
- テストプログラムは明日以降開発予定です。
- NT4/x64 用ドライバを追加しました。(一応動作確認済み)
- 9x 用のドライバはついていません。
ダウンロード:OpenLibSys Alpha1
7 月 15
ビルド・ビルド・ビルド!!
こんにゃくブームもようやく一段落し、エンジン全開です!!
今日は、DLL とデバイスドライバの開発を行っています。とりあえず、NT4 でも動作することを確認し一安心。ソースコードもだいぶ整理したので、SysInfo よりはずっと読みやすくなったんじゃないかと思います。
問題は、98/Me 用の仮想デバイスドライバ・・・要ります?
要りますよねぇ~やっぱり。今作らないと永遠に作れませんもんねぇ~。
あっ、そうそう。
最初 NT4 で DLL がロードできず困っていたのですが、よくよく見るとインポートライブラリに msvcr80.dll が含まれているではありませんか!!おいおい、そんなのに依存した DLL いらねぇ~よ!!と思い試行錯誤したところ、必要なライブラリをスタティックリンクすることができました。ファイルサイズは 12KB から 60KB に増えましたが、msvcr80.dll をインストールしている人は少ないと思うのでまぁ良いでしょう。
気になる方法は、
プロジェクトのプロパティページ > 構成プロパティ > プロジェクトの規定値 > MFC の使用
を「標準 Windows ライブラリを使用する」から「スタティックライブラリで MFC を使用する」に切り換えていったんビルド。MFC を使っていないので、当然のように大量のエラーが発生するわけですが、「標準 Windows ライブラリを使用する」に戻してからビルドするとあら不思議、msvcr80.dll に依存しない大きな DLL が生成されるではありませんか!!
コンパイルオプション等ちゃんとチェックはしていませんが、こんな方法もあるよぉ~ということで関係各位??には有用かもしれない情報ということでメモっておきます。
7 月 15
昨夜は CrystalMark 2004R2 の改修作業に取り組んだんだけど致命的な不具合に気がつきました。すげぇ~今更だけど。なんと、HDD の一覧が出ないではありませんか。HDD にアクセスしている部分が Vista から多少変更になっていて取得できなくなっていそう。どうしたものか・・・。
過去にすがっていてもしょうがないのでとりあえず、OpenLibSys Core SDK リリースに向けた作業を優先させることにします。
7 月 10
久しぶりに泣いた。
明日から CrystalCPUID/OpenLibSys の開発を再開します。
OpenLibSys の裏開発コードは「こんにゃく」ということで・・・。
なんかのクラス名につかうかな(笑)
class CKonnyaku : public COtakuNiJishingamotenainanteNasakenai
{
/* 自主規制 */
}
って感じで。何を継承しているかわかんないけど。
7 月 08
CrystalDiskMark 用テーマをカスタマイズしてる人っているんだろうか???
今のところ Web 上で見かけたことがないんですけど・・・。
7 月 07
次は SysInfo の修正もやんないとなぁ~明日は SysInfo 340 をなんとか。。。
最近 AMD の資料が更新されたのですが、変更点が多くて微妙に放置中・・・