2010/8/22:本掲示板は閲覧専用です。データが一部破損しておりますがご了承ください。
  新規投稿 ┃ツリー表示 ┃スレッド表示 ┃一覧表示 ┃トピック表示 ┃番号順表示 ┃検索 ┃設定 ┃ホーム  
22 / 118 ページ ←次へ | 前へ→

【1953】Re:呼び出し規約か…?
←back ↑menu ↑top forward→
 DULL WEB  - 06/3/22(水) 22:57 -

引用なし
パスワード
   ▼ひよひよさん:
>libpng をはずせばうまく動いたりするんでしょうか?
>#define USEPNG
>あたりをコメントアウトして、libpng のリンクをやめれば
>PNG サポートをオフにできるかと思います。
>この状態で、最適化してもうまく動くんであれば、libpng を
>使うのを辞めて、GDIPlus に切り替えるという方針も・・・。
おっ、簡単にPNGは外せるんですね。
さすがにソ〜スを追うのがひんどくなってきてまして(^_^;
明日、試してみます。

>>これだとパスが245文字以上のフォルダで実行されると
>>path[] にはファイル名も入るのでバッファが
>>オ〜バ〜フロ〜してしまう可能性があると思います。
>>(ファイル名が固定なので確立はかなり低いですが…)
>Windows って 256 文字以上のパスって基本的に実現できないんですよね???
>MAX_PATH は WinDef.h で 260 と定義しているので大丈夫だと信じています。
パスだけなら問題ないのですがドライバファイル名を後から追加してるんです。
sprintf(path,"%s\\%s",tmp,DRIVERFILENAME);
"\\Sysinfo.sys" を追加したら260を超える可能性はありますよね?

>この件が解決すれば、今まで動かない〜とレポートしてくださった方の環境でも動くようになるのかも。
直ってくれるように明日もテストします。
ではでは。
・ツリー全体表示

【1952】Re:呼び出し規約か…?
←back ↑menu ↑top forward→
 ひよひよ  - 06/3/22(水) 21:47 -

引用なし
パスワード
   ▼DULLさん:
>▼ひよひよさん:
>
>>ということですが、CrystalCPUID.exe だけ最適化でも OK だったりしませんか?
>両方の最適化をOFFにしないとダメです。
ふむふむ。

>>なんにせよ、次回リリースからは最適化オフで出したいと思います。
>個人的には最適化ON/OFFの両方を公開する方が良いと思います。
>OFFバ〜ジョンは頻繁にバ〜ジョンアップしないで確認用とか。
それも一案ですが・・・。

>スタックが狂っているようなので原因を考えると
>・アセンブラでPUSH/POP等を間違っている。
>・呼び出し規約の_stdcallと_cdeclが間違っている。
呼び出し規約までは考えてことがありませんでした。
ありそー。

>後者を疑って/Gz(強制 _stdcall使用)を試しました。
>CrystalCPUID.exe は libpng の仕様でビルド失敗。
>SysInfo.DLL は /Gz を通過したので実行してみました。
libpng をはずせばうまく動いたりするんでしょうか?
#define USEPNG
あたりをコメントアウトして、libpng のリンクをやめれば
PNG サポートをオフにできるかと思います。
この状態で、最適化してもうまく動くんであれば、libpng を
使うのを辞めて、GDIPlus に切り替えるという方針も・・・。

>結果は起動中に「ページ違反」が発生。
>アドレスがいつもの落ちるアドレスと同じだったので
>もしかしたらこれが原因かも知れません。
怪しい。

>過去に私も libpng を使った事がありますが
>ファイル処理で関数ポインタを使う方法があります。
>このへんで呼び出し規約を間違ったりとか…?
libpng はずぅ〜っと、前にコンパイルしたものをそのまま
使っている(セキュリティは???)ので、
ちょっと考えてもいいのかもしれません。

>libpng のソ〜スを持ってきて -DPNGAPI __stdcall で
>ビルドして回避できないかと考えたりします。
>
>さらに pcidll.c の initialize() の
>char path[MAX_PATH];
>
>これだとパスが245文字以上のフォルダで実行されると
>path[] にはファイル名も入るのでバッファが
>オ〜バ〜フロ〜してしまう可能性があると思います。
>(ファイル名が固定なので確立はかなり低いですが…)
Windows って 256 文字以上のパスって基本的に実現できないんですよね???
MAX_PATH は WinDef.h で 260 と定義しているので大丈夫だと信じています。

>ではでは。
なんだか、神の香りがしてきた今日この頃です。
一段落したら、Special Thanks コーナーに追加させていただきますね。

libpng は疑ったことが一度もありませんでした。
この件が解決すれば、今まで動かない〜とレポートしてくださった方の環境でも動くようになるのかも。
・ツリー全体表示

【1951】呼び出し規約か…?
←back ↑menu ↑top forward→
 DULL WEB  - 06/3/22(水) 18:40 -

引用なし
パスワード
   ▼ひよひよさん:

>ということですが、CrystalCPUID.exe だけ最適化でも OK だったりしませんか?
両方の最適化をOFFにしないとダメです。

>なんにせよ、次回リリースからは最適化オフで出したいと思います。
個人的には最適化ON/OFFの両方を公開する方が良いと思います。
OFFバ〜ジョンは頻繁にバ〜ジョンアップしないで確認用とか。

スタックが狂っているようなので原因を考えると
・アセンブラでPUSH/POP等を間違っている。
・呼び出し規約の_stdcallと_cdeclが間違っている。

後者を疑って/Gz(強制 _stdcall使用)を試しました。
CrystalCPUID.exe は libpng の仕様でビルド失敗。
SysInfo.DLL は /Gz を通過したので実行してみました。

結果は起動中に「ページ違反」が発生。
アドレスがいつもの落ちるアドレスと同じだったので
もしかしたらこれが原因かも知れません。

過去に私も libpng を使った事がありますが
ファイル処理で関数ポインタを使う方法があります。
このへんで呼び出し規約を間違ったりとか…?

libpng のソ〜スを持ってきて -DPNGAPI __stdcall で
ビルドして回避できないかと考えたりします。

さらに pcidll.c の initialize() の
char path[MAX_PATH];

これだとパスが245文字以上のフォルダで実行されると
path[] にはファイル名も入るのでバッファが
オ〜バ〜フロ〜してしまう可能性があると思います。
(ファイル名が固定なので確立はかなり低いですが…)

ではでは。
・ツリー全体表示

【1950】Re:SysInfo.vxd の改良&修正
←back ↑menu ↑top forward→
 ひよひよ  - 06/3/21(火) 22:03 -

引用なし
パスワード
   ▼DULLさん:
>実際に rdmsr/wrmsr を vxd 側に移してみました。
>SysInfo.sys からMSR関係のソ〜スをコピペするだけで
>問題なく動作するようです。(ただ hlt は試していません。)
どうもありがとうございます。
次回は vxd も更新かな・・・?

>vxd の動作チェックをしていたら ReturnedLength が
>常に0である事に気がつきました。
>DIOCPARAMETERS のメンバ名を見ると
>lpcbBytesReturned は lpから始まっているので
>
>&lpDIOCParms->lpcbBytesReturned
>を
>(ULONG *)lpDIOCParms->lpcbBytesReturned
>
>に変更すると ReturnedLength に値が入りました。
>
>これで「ペ〜ジ違反」が直るかと思いましたがダメでした。
>
>現在わかっているのは
>・CrystalCPUID.exe と SysInfo.dll の最適化をOFFにすると動作する。
ということですが、CrystalCPUID.exe だけ最適化でも OK だったりしませんか?
どっちかだけの場合どうなるかも気になります。
なんにせよ、次回リリースからは最適化オフで出したいと思います。
海外のユーザでもな〜んか動かないんだよなぁ〜と思っている方&使用をあきらめてしまった方もいると思うので。

>・スタック領域の書き込みで落ちる。
>
>- PciInfo.cpp -
>c = _pciConfigReadChar( address >> 16, 0x82);
>c |= 0x04;  ← 今回はここで落ちた
>
>- アセンブラ -
>or al,4
>mov [ebp-4],al  ← 今回はここで落ちた
ほんと、何でだ?って感じなんですが。。。

>もう少し探っていきたいと思います。
>ではでは。
お手数をおかけいたします。
・ツリー全体表示

【1949】SysInfo.vxd の改良&修正
←back ↑menu ↑top forward→
 DULL WEB  - 06/3/21(火) 10:00 -

引用なし
パスワード
   実際に rdmsr/wrmsr を vxd 側に移してみました。
SysInfo.sys からMSR関係のソ〜スをコピペするだけで
問題なく動作するようです。(ただ hlt は試していません。)

vxd の動作チェックをしていたら ReturnedLength が
常に0である事に気がつきました。
DIOCPARAMETERS のメンバ名を見ると
lpcbBytesReturned は lpから始まっているので

&lpDIOCParms->lpcbBytesReturned

(ULONG *)lpDIOCParms->lpcbBytesReturned

に変更すると ReturnedLength に値が入りました。

これで「ペ〜ジ違反」が直るかと思いましたがダメでした。

現在わかっているのは
・CrystalCPUID.exe と SysInfo.dll の最適化をOFFにすると動作する。
・スタック領域の書き込みで落ちる。

- PciInfo.cpp -
c = _pciConfigReadChar( address >> 16, 0x82);
c |= 0x04;  ← 今回はここで落ちた

- アセンブラ -
or al,4
mov [ebp-4],al  ← 今回はここで落ちた

もう少し探っていきたいと思います。
ではでは。
・ツリー全体表示

【1948】Re:原因つかめず…
←back ↑menu ↑top forward→
 ひよひよ  - 06/3/19(日) 19:20 -

引用なし
パスワード
   ▼DULLさん:
>▼ひよひよさん:
>>あまり深追いするよりも、自分の必要な機能だけ抜き出して SysInfo.dll をコールする GUI を作ったほうが有意義かも。。。
>自分でソフトを作ってしまいました。
>9x専用、ブリッヂ初期化なしと本当に自分専用です(-_-;
いやはや恐れ入ります。
ホント原因がわからないんでなんとも・・・
申し訳ない。

>>といいつつ、SysInfo.dll も再構築しなければならないと思う今日この頃。
>win9x のRDMSR/WRMSRをVxd側に移しても動きそうな気がするのですが
>どうでしょう?(試して見ないとわかりませんが…)
>セレクタ情報を読み取って無理矢理Ring0よりはスマ〜トかなと思ったりします。
>そうすればMSR操作はNT系と共通になるのでコ〜ドの簡略になるかも?
そうですね。

現在、Windows 以外のプラットフォームに CrystalCPUID を移植すべく準備を始めたところです。その中で、SysInfo.dll は相当変更する予定なので、そのときは Vxd 側でやるようにしようと思います。(今すぐやれって感じですが。)
・ツリー全体表示

【1947】Re:原因つかめず…
←back ↑menu ↑top forward→
 DULL WEB  - 06/3/19(日) 18:56 -

引用なし
パスワード
   ▼ひよひよさん:
>あまり深追いするよりも、自分の必要な機能だけ抜き出して SysInfo.dll をコールする GUI を作ったほうが有意義かも。。。
自分でソフトを作ってしまいました。
9x専用、ブリッヂ初期化なしと本当に自分専用です(-_-;

>といいつつ、SysInfo.dll も再構築しなければならないと思う今日この頃。
win9x のRDMSR/WRMSRをVxd側に移しても動きそうな気がするのですが
どうでしょう?(試して見ないとわかりませんが…)
セレクタ情報を読み取って無理矢理Ring0よりはスマ〜トかなと思ったりします。
そうすればMSR操作はNT系と共通になるのでコ〜ドの簡略になるかも?

>第一 MessageBox を間に挟むとうまく動くという時点で何かが間違ってる・・・Sleep(0); を間に挟めばうまくいったりしませんかねぇ〜(根本的な解決にはならないけど。)
Sleep(1000)を試した時はダメでした。

他に疑うとしたらスレッド周りでしょうか…
・ツリー全体表示

【1946】Re:バグ報告 SUBST
←back ↑menu ↑top forward→
 YN  - 06/3/17(金) 23:46 -

引用なし
パスワード
   >。(バグではありません)Windows の制限
すみませんバグだなんて言ってしまって。
仮想ドライブにインストールしてあるソフトは何十とありこれまで問題なかったので
そんな制限があるとは思いもしませんでした。
検索して見ると他のソフトに*.SYSはありませんでした。
おとなしくC:にインストールすることにします。
すばやい回答ありがとうございました。
・ツリー全体表示

【1945】Re:バグ報告 SUBST
←back ↑menu ↑top forward→
 ひよひよ  - 06/3/17(金) 23:14 -

引用なし
パスワード
   ▼YNさん:
>はじめまして。
はじめまして。

>私の環境ではCool'n'Quietが動かないので大変重宝しています。ありがとうございます。
どういたしまして。

>さてバグなんですけど、私はSUBSTで割り振ったドライブにソフトをインストールしています。
>CrystalCPUIDも同じようにしていますが、
>仮想ドライブのディレクトリから起動すると立ち上がりはするんですが
>クロックの表示が出なかったりMultiplier Managementがグレーアウトしています。
>元のディレクトリからなら正常に動きます。
>どうもSysInfo.sysが読み込めてないようです。
お察しの通り、デバイスドライバが読み込めていないだけです。(バグではありません)
Windows の制限(裏技はあるらしいが・・・)で、ネットワークドライブ等一部のドライブからはデバイスドライバはロードできません。誠に申し訳ございませんが、通常の HDD にインストールするようお願いいたします。
・ツリー全体表示

【1944】バグ報告 SUBST
←back ↑menu ↑top forward→
 YN  - 06/3/17(金) 22:56 -

引用なし
パスワード
   はじめまして。
私の環境ではCool'n'Quietが動かないので大変重宝しています。ありがとうございます。

さてバグなんですけど、私はSUBSTで割り振ったドライブにソフトをインストールしています。
CrystalCPUIDも同じようにしていますが、
仮想ドライブのディレクトリから起動すると立ち上がりはするんですが
クロックの表示が出なかったりMultiplier Managementがグレーアウトしています。
元のディレクトリからなら正常に動きます。
どうもSysInfo.sysが読み込めてないようです。

subst S: C:\CrystalCPUIDとして
S:\CrystalCPUID.exeを起動するとおかしくて
C:\CrystalCPUID\CrystalCPUID.exeなら正常に動きます。
もしよろしければ対処してもらえませんか。
・ツリー全体表示

【1943】Re:原因つかめず…
←back ↑menu ↑top forward→
 ひよひよ  - 06/3/17(金) 0:26 -

引用なし
パスワード
   ▼DULLさん:
>▼ひよひよさん:
>
>>PCI Device List とかは表示できますか???
>あれれ?
>表示できますね…
正直、CrystalCPUID.exe 側に問題があると思うんですよね。。。
5.x は全てリセットして再構築しようとしているので、それで結構解決するんじゃないかと思っています。一部の環境で正常に動作しないというレポートは以前からいただいているんですが、自分の環境では再現しないので何が原因か未だにつかめておりません。

あまり深追いするよりも、自分の必要な機能だけ抜き出して SysInfo.dll をコールする GUI を作ったほうが有意義かも。。。

といいつつ、SysInfo.dll も再構築しなければならないと思う今日この頃。
第一 MessageBox を間に挟むとうまく動くという時点で何かが間違ってる・・・Sleep(0); を間に挟めばうまくいったりしませんかねぇ〜(根本的な解決にはならないけど。)
・ツリー全体表示

【1942】原因つかめず…
←back ↑menu ↑top forward→
 DULL WEB  - 06/3/16(木) 20:11 -

引用なし
パスワード
   ▼ひよひよさん:

>PCI Device List とかは表示できますか???
あれれ?
表示できますね…

どこかでメモリリ〜クしてて
メモリの内容を壊しているのでしょうかね?

ちなみにスタック不足を考えてリンカの設定で
スタックサイズを2倍にしても変化はありませんでした。

もう少し調べてみようと思います。
ではでは。
・ツリー全体表示

【1941】Re:pciFindPciDevice() が原因?
←back ↑menu ↑top forward→
 ひよひよ  - 06/3/13(月) 23:44 -

引用なし
パスワード
   ▼DULLさん:
>▼ひよひよさん:
>
>>つーか、スタック周りだったりして。
>>
>>EnableK8FVID() の呼び出し位置に関数の中身をコピーして試してみるというのはいかがでしょうか?これで落ちないようだと・・・。
>_pciFindPciDevice() で落ちているのは確実です。
でも、この関数って他の部分でも呼び出しているように思うんですよね。。。
PCI Device List とかは表示できますか???

>再起呼び出し等は行っていないのでコ〜ド的には
>スタック不足は発生しないように私は見えますが…?
>今日はTurion機の「HDD入れ替え&OS入れ」をしているので
>検証できないですm(_ _)m
えっと、スタック周りというのは、以前(今もそのまま)何の変哲もない関数を呼び出すところで実行が止まる?というレポートをいただき、色々デバッグを試みたのですが、その方の環境ではやっぱり動かなかったというのがあったんですよね。自分の環境で再現しないバグって、結構根本的に不具合の素があるんだろうなぁ〜と。

>私が使っているK8V-MXのBIOSはAMIなのでAWAROとは
>PCI-BIOS実装が異なっているんじゃないか…なんて?
>存在しないバス番号、デバイス番号のレジスタ読みで
>落ちてるとしたら悲しい実装ではありますが…(-_-;
う〜ん。それはないかな。。。
やっぱり、Crystal 側に問題があると考えるのが普通かなと。
はぁ・・・。バグばっかりだよ。

>>これって、自作 OS でも役に立つ知識なのかも。(気早っ)
>多分、役に立つと思いますよ。
>PCIをI/Oポ〜トで制御するのは面倒なので
>PCI-BIOSは有効な手段だと思います。
直接、I/O ポートだと、環境によってはブルースクリーンだったりするんですよね。。。(SysInfoの前身はI/O直接アクセスでがんばってました。)

>私はCQ出版社の「TECH I Vol3 PCIデバイス設計入門」を
>参考にしてPCI-BIOSを使いました。
>後半のソフトウェア部分はPCI-BIOSの存在有無のチェックから
>使い方まで書いてあります。
私もこの本で勉強しました。

>PCI Debug Library の作者 kashiwanoさんも記事を書いています。
>でも9割がハ〜ドウェアの資料なのでほとんど(私には)使えません。
あっ、私もです。最後の方しかちゃんと読んでません。
PCI デバイスの自作をするほどマニアではないので(笑)

>>私も実務経験0です。つーか、ホビープログラマっていうやつですね。
>そういう風に言うですね。初めて知りました。
>ひよひよさんは職業プログラマなんだろうと勝手に思ってました(^_^;
褒め言葉と受け取っておきます。
・ツリー全体表示

【1940】pciFindPciDevice() が原因?
←back ↑menu ↑top forward→
 DULL WEB  - 06/3/13(月) 22:41 -

引用なし
パスワード
   ▼ひよひよさん:

>つーか、スタック周りだったりして。
>
>EnableK8FVID() の呼び出し位置に関数の中身をコピーして試してみるというのはいかがでしょうか?これで落ちないようだと・・・。
_pciFindPciDevice() で落ちているのは確実です。
再起呼び出し等は行っていないのでコ〜ド的には
スタック不足は発生しないように私は見えますが…?
今日はTurion機の「HDD入れ替え&OS入れ」をしているので
検証できないですm(_ _)m

私が使っているK8V-MXのBIOSはAMIなのでAWAROとは
PCI-BIOS実装が異なっているんじゃないか…なんて?
存在しないバス番号、デバイス番号のレジスタ読みで
落ちてるとしたら悲しい実装ではありますが…(-_-;

>これって、自作 OS でも役に立つ知識なのかも。(気早っ)
多分、役に立つと思いますよ。
PCIをI/Oポ〜トで制御するのは面倒なので
PCI-BIOSは有効な手段だと思います。

私はCQ出版社の「TECH I Vol3 PCIデバイス設計入門」を
参考にしてPCI-BIOSを使いました。
後半のソフトウェア部分はPCI-BIOSの存在有無のチェックから
使い方まで書いてあります。
PCI Debug Library の作者 kashiwanoさんも記事を書いています。
でも9割がハ〜ドウェアの資料なのでほとんど(私には)使えません。

>私も実務経験0です。つーか、ホビープログラマっていうやつですね。
そういう風に言うですね。初めて知りました。
ひよひよさんは職業プログラマなんだろうと勝手に思ってました(^_^;

>そういえば、質問があるとかいう話はどうなりましたか?
実は自己解決してしまいました。
なので今は次のステップのために資料を集めて勉強中です。
・ツリー全体表示

【1939】Re:4.7.1.292A
←back ↑menu ↑top forward→
 ひよひよ  - 06/3/12(日) 23:19 -

引用なし
パスワード
   ▼revさん:
>OKになりました。
動作確認ありがとうございます。
・ツリー全体表示

【1938】Re:EnableK8FVID が原因かも
←back ↑menu ↑top forward→
 ひよひよ  - 06/3/12(日) 23:19 -

引用なし
パスワード
   ▼DULLさん:
>▼ひよひよさん:
>sysinfo.dllを少しいじってみましたが
>単純に EnableK8FVID() を実行しないようにしたら
>落ちなくなりました。
動作検証ありがとうございます。
つーか、スタック周りだったりして。

EnableK8FVID() の呼び出し位置に関数の中身をコピーして試してみるというのはいかがでしょうか?これで落ちないようだと・・・。

>内部処理ではホストブリッヂ(?)を検索して
>該当レジスタのBit2を立てていますが
>私の環境では起動段階でBit2は立っているので
>この処理をパスしても問題ありませんでした。
うっ、確かにそれはそうなんですよね。
たまに、Bit 2 が立っていない環境があるので。。。

>しかし、これでは根本的な解決にはならないので
>PCIアクセス周りを調べて見ようかと思います。
MessageBox デバッグもいいので、どの関数まで呼ばなければ動くかのか?
がはっきりすれば対応できるかもしれません。

>>>PCI-BIOSでPCIデバイス検索する時は
>>>mov ax,0b102H
>>>mov cx,デバイスID
>>>mov dx,ベンダID
>>>int 1aH
>>>で出来るんです。
>>私もいま勉強中なんですが、これって、プロテクトモードだと使えませんよね?
>PCI Debug Library の処理もこれと同じようにPCI-BIOSをコ〜ルして
>レジスタの書き換えやメモリ空間の読み書きを行っているので
>sysinfo.vxd 内部では使えるハズです。
ほんとだ。かなりそれっぽい asm がいっぱいありますね。
これって、自作 OS でも役に立つ知識なのかも。(気早っ)

>もし処理を追加するとすれば sysinfo.vxd と sysinfo.sys に
>新しく「デバイス検索命令」を追加する形になります。
>sysinfo.vxd はPCI-BIOSコ〜ルで検索して
>sysinfo.sys は現在の _pciFindPciDevice() の処理を
>内臓すれば互換性は取れるような気がします。
なんかここら辺はかなり改善の余地がありそうですね。
全部探索してる感じになってるし。

>過去にWin98 DDKをダウンロ〜ドして保存してあったCD-Rを
>見つけたので sysinfo.vxd もビルドできるようになりましたし、
>NT4 DDK も見つけたので sysinfo.sys も試してみようと思います。
SysInfo.sys をビルドするときは、
#define _NT4
を有効にしておいてください。こうすると、NT4 では対応していない? Kernel mode SEH が無効になります。

詳しくは
http://crystalmark.info/BBS/c-board.cgi?cmd=one;no=1406;id=

>もう少しいじってまた報告します。
>
>>>でも実はデバッガは使った事がなかったりします(-_-;
>>あっ、デバッガは便利ですよ。
>独学プログラマでして実務経験ゼロだったりします(T_T)
>デバッガって難しそうな気がして触れないんですよね。
私も独学?プログラマです。仲間ですね(笑)
私も実務経験0です。つーか、ホビープログラマっていうやつですね。

そういえば、質問があるとかいう話はどうなりましたか?
・ツリー全体表示

【1937】EnableK8FVID が原因かも
←back ↑menu ↑top forward→
 DULL WEB  - 06/3/12(日) 21:56 -

引用なし
パスワード
   ▼ひよひよさん:

sysinfo.dllを少しいじってみましたが
単純に EnableK8FVID() を実行しないようにしたら
落ちなくなりました。

内部処理ではホストブリッヂ(?)を検索して
該当レジスタのBit2を立てていますが
私の環境では起動段階でBit2は立っているので
この処理をパスしても問題ありませんでした。

しかし、これでは根本的な解決にはならないので
PCIアクセス周りを調べて見ようかと思います。

>>PCI-BIOSでPCIデバイス検索する時は
>>mov ax,0b102H
>>mov cx,デバイスID
>>mov dx,ベンダID
>>int 1aH
>>で出来るんです。
>私もいま勉強中なんですが、これって、プロテクトモードだと使えませんよね?
PCI Debug Library の処理もこれと同じようにPCI-BIOSをコ〜ルして
レジスタの書き換えやメモリ空間の読み書きを行っているので
sysinfo.vxd 内部では使えるハズです。

もし処理を追加するとすれば sysinfo.vxd と sysinfo.sys に
新しく「デバイス検索命令」を追加する形になります。
sysinfo.vxd はPCI-BIOSコ〜ルで検索して
sysinfo.sys は現在の _pciFindPciDevice() の処理を
内臓すれば互換性は取れるような気がします。

過去にWin98 DDKをダウンロ〜ドして保存してあったCD-Rを
見つけたので sysinfo.vxd もビルドできるようになりましたし、
NT4 DDK も見つけたので sysinfo.sys も試してみようと思います。

もう少しいじってまた報告します。

>>でも実はデバッガは使った事がなかったりします(-_-;
>あっ、デバッガは便利ですよ。
独学プログラマでして実務経験ゼロだったりします(T_T)
デバッガって難しそうな気がして触れないんですよね。
・ツリー全体表示

【1936】Re:4.7.1.292A
←back ↑menu ↑top forward→
 rev  - 06/3/12(日) 21:26 -

引用なし
パスワード
   OKになりました。
・ツリー全体表示

【1935】Re:あれれ?
←back ↑menu ↑top forward→
 ひよひよ  - 06/3/12(日) 20:54 -

引用なし
パスワード
   ▼DULLさん:
>cpuinfo(4).dll を試してみましたがダメでした。
>ペ〜ジ違反で落ちてしまいました。
>何が原因なのか…
>
>ソ〜スを眺めていたんですが _pciFindPciDevice() は
>すごく面倒な処理をしているように思えました。
う〜んと、ここら辺はベースライブラリの PCI Debug Library for Win32 とほとんど変わっていないはずです。。。私自身 PCI の扱いに習熟しているわけでないのが痛いところであります。

>現在、DOS用の倍率電圧変換ソフトを作っていますが
>(いろいろ苦戦していましたがDOS用ソフトで
>今日やっと倍率電圧変更に成功しました。)
おめでとうございます!!

>PCI-BIOSでPCIデバイス検索する時は
>mov ax,0b102H
>mov cx,デバイスID
>mov dx,ベンダID
>int 1aH
>で出来るんです。
私もいま勉強中なんですが、これって、プロテクトモードだと使えませんよね?

>多分、NT側との互換性の為にあのような処理に
>なってるのかなと思いました。
NT と 9x で同じになるようにドライバは作られています。

>sysinfo.dllもビルドできるようになりましたので
>いろいろ実験して明日報告したいと思います。
ぜひお願いいたします。

>でも実はデバッガは使った事がなかったりします(-_-;
あっ、デバッガは便利ですよ。
・ツリー全体表示

【1934】Re:4.7.1.292のクロック判別ミス
←back ↑menu ↑top forward→
 ひよひよ  - 06/3/12(日) 10:42 -

引用なし
パスワード
   ▼revさん:
>4.7.0.290では問題なかったのですが、4.7.1.292でクロックの判別がおかしくなりました。
ご報告ありがとうございます。一部の環境で、問題があったのでそれを修正しようとしたのですが、それがきっかけで大多数の環境で問題が発生するようになってしまいました。

修正方法については再度検討してみます。
・ツリー全体表示

22 / 118 ページ ←次へ | 前へ→
  新規投稿 ┃ツリー表示 ┃スレッド表示 ┃一覧表示 ┃トピック表示 ┃番号順表示 ┃検索 ┃設定 ┃ホーム  
ページ:  ┃  記事番号:   
51983
(SS)C-BOARD v3.8(とほほ改ver2.1) is Free