キャビネット・ユンゲへの投稿
記事番号00197へのフォローを投稿します。
お名前(ペンネイムで結構ですが必要です)
(
ブラウザに個人情報を覚えさせない)
電子メイルアドレス(必要です)
題名(必要です)
Home Page がある方はリンク希望先の URL を記載して下さい
会議室に載せたい内容を以下へお書き下さい (
HTMLを解釈せずにそのまま表示)
11月2日に、Akitaka HOSOMIさんは書きました。 >Win16 での物理メモリへのアクセス方法は、 > > > Win16 API : AllocSelector > FreeSelector > SetSelectorBase > SetSelectorLimit > >を使ったり、 > > DPMI のインターフェイス > >などを使ってたようだ。 > > >ただし、これを、そのまま Win 32 でやるには、ちと無理があり、スマートなやり方と >は言えない。 > >上記のセレクタ関連の API は、Win32 で廃止されたものだし、DPMI で、下位 1 MB の >メモリにアクセスするってのも、マズイようだ。 > > > > > >で、何かないのかなぁ、と探していたら、あった、あった↓。 > > Interface 1997/10 月号( CQ 出版社 )の Windows デバイスドライバ の特集記事 > > > VxD( C で書かれたソース )の中から、 > > _MapPhysToLinear > >を使って、物理メモリをリニアアドレスにマッピングしてる。 > > >これは、Win32 の API ではなさそうだから、リング 0 で提供されてるコールだろね。 >そんなわけで、アプリからは、直接、呼べないぞ、たぶん。 > ># DDK があれば、確認できるんだけどなぁ。 > > > > > _MapPhysToLinear の引数として、物理メモリアドレスと領域サイズなどを与えて、 >コールしてやれば、戻り値として、リニアアドレスが返るみたい。 > > >これでマッピングした後、戻り値のリニアアドレスを、そのままポインタに代入して、 >通常通り、読み書きしてるようだ。 > ># なんと、たわいの無い ..... 簡単、お手軽。 > >このマッピングは、OS がシャットダウンするまで有効だ、なんてことも書いてある。 > > > C から呼んでるので、アセンブラからは、__MapPhysToLinear ってことだね。 >戻り値は、EAX ってところかな ..... > > > >よっしゃ、物理メモリの取り扱いは、これで、OK っつう感じ。 Good ! > > > > ># NASA TV LIVE を見ながら、これを書いてたりする。 > ># 今、ディスカバリーが、アームを使って、スパルタン衛星をベイから取り出すところ ># だ。 > ># スペースシャトルからの映像が、インターネットを使って、ライブで見えるのは、 ># スゴイ。いい時代だ。
cavin@cavin.co.jp
Last Update: 27 April 2022