《VxD与asm在Int13H各方式交互写扇区.doc》由会员分享,可在线阅读,更多相关《VxD与asm在Int13H各方式交互写扇区.doc(1页珍藏版)》请在三一文库上搜索。
1、VxD 与 asm 在 Int 13H 各方式交互写扇区 摘要:磁盘读写,历经指明柱面号 (cylinder)+ 磁头号 (head)+ 扇 区号(sector)到指明逻辑块地址(lba)+磁头数+每磁道扇数,再靠 扩展 13h,指明 lba+磁盘地址包(dap).98 系统,按 4k 字节/页调配 内存,16 位 asm 虚拟 86进程,靠 bx=3180h(vtoolsd 建立的设备名 为 k4pg_200 之动态可装入 vxd 的 id) , ax=1684h, int 2fh ,取 vxd 入口 esddb_name,8);shell_sysmodal_message(get_cur_
2、vm_handle(), mb_systemmodal,” modular ” ,mz);return true;/ 让 vmn 装 vxd 入内存 .svc 转入 handler:dword due; handler(vmhandle vm,pclient_struct pu)uniondword bx;short*pw;lin;unsigned long off,hand,sense;if(2pu-cbrs.client_al)lin.bx=(dword)map _flat(client_es,client_bx); off=lin.bx&4095; if(512+16)(pu-cwrs.client_bp=4096-off) return; due=lin.bx12;pu-cwrs.client_bp=4096; if(256+15)due) for(hand=16;(256+15+1)!=hand;hand+) if(linmapintov86(due,vm,hand,1,0,&sense) break; if(256+15+1)=hand)pu-cbrs.client_ah=1;return; due=sense;pu-cwrs.client_bp+;sense=(duecrs.client_e