zwwzm
驱动牛犊
驱动牛犊
  • 注册日期2001-06-25
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2142回复:2

调用VMM服务和调用INT XX有何区别?

楼主#
更多 发布于:2001-06-29 15:07
在VTOOLSD和WINDDK 的开发中,我经常需要调用软中断,
此时,可调用VMM 的IFS等,也可调用INT 13H,INT 21H,
但我不知道这两者有何区别,VMM 的服务是否调用低层的
BIOS 或者是DOS ?关于截获WIN9X 的文件操作是否必须
调用IFS?请各位高手指教。非常感激。
   各位大虾,怎么 到现在还没有人回答我啊?一星期了!
难么????
   还有,  在ring0 下, RO系列函数,调用中断来完成文件操作的,是否
与  DPMI 有关?因为DPMI 是WINDOWS 的启动序列的头,
难道切换到保护模式后,就丢下不管吗?
[zwwzm 编辑于 2001-07-05 04:49]
zwwzm 人需要冒险!
lu0
lu0
论坛版主
论坛版主
  • 注册日期2001-06-10
  • 最后登录2016-04-05
  • 粉丝2
  • 关注0
  • 积分-6311分
  • 威望21111点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2001-07-06 16:17
区别在于各路VXD会将INT XX拦截.并且跳转到相应的VXD SERVICE中.
VXD SERVICE最终的实现是不调用INT XX的.
当没有VXD愿意提供INT XX的服务时, 缺省的服务代码是DOS代码.
这时,VMM将CPU切换到V86 MODE. 然后进行服务.
这业就是VMCB里有2个IDT的原因了.
Regards, Lu Lin Webmaster of Inside Programming http://www.lu0s1.com
zwwzm
驱动牛犊
驱动牛犊
  • 注册日期2001-06-25
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2001-07-08 09:03
真心感谢LUO版主的指教。
 再请问,既然跳到相应的VXD SERVICE 里,那么
我在VXD 中,不是也可就直接调用INT XXH?让各位的VXD
代劳了,省的调用废人的VXD SERVICE 服务(思念可爱的DOS 时代),请问这样可以吗?
 这样,关于IFSH 的调用是否就可拦截INT XXH了呢?
反正关于VXD 文件操作的参数和DOS ,BIOS 中断调用的参数
几乎相同。这可以吗?

[zwwzm 编辑于 2001-07-08 09:09]
zwwzm 人需要冒险!
游客

返回顶部