アセンブラ… (°Д°)ハァ?
■ このスレッドは過去ログ倉庫に格納されています
0778デフォルトの名無しさん
NGNGAMD64のコードを動かしたわけじゃないけど
1)VirtualAlloc()で仮想アドレスを指定してCOMMITする。
2)1)が成功したら、その仮想アドレスをカーネルモード(ドライバ)に渡す。
以下カーネルモード
3)受け取った仮想アドレスの値と同じ物理アドレスに対応するPFNを参照し
使われていないか確認する。使われていたら1)に戻る。
4)3)のPFNをデータベースのリンクから切る(そのメモリ領域はOSの管理から離れる)
5)1)の仮想アドレスがマップしている物理アドレスに対応するPFNから
ページフレームの(仮想)アドレスを得る。
6)そのページフレームのアドレスフィールドに1)の仮想アドレスを書きこむ。
PFNについてはググってちょうだい。
ただ、PFNのアドレスはOSやバージョンによって違うから、MSのカーネルデバッガで
調べるしかない。
■ このスレッドは過去ログ倉庫に格納されています