ghshgh
驱动牛犊
驱动牛犊
  • 注册日期2002-05-22
  • 最后登录2003-11-11
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:914回复:3

vm和vxd的问题???加分

楼主#
更多 发布于:2002-06-03 14:19
当我在VM中调用一个VXD的API。下面是一个API
void_cdel v86_api_handle(vmhandle hvm,pclient_struct pcrs)
{
  在这里输出AX,和PCRS->AX。
  }

为何他们输出的不同?????
yanghui
驱动牛犊
驱动牛犊
  • 注册日期2002-01-29
  • 最后登录2009-10-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-06-04 22:09
这是因为经过了模式的切换,即从用户态向核心态的转换,此时的AX是内核模式下的值,PCRS->AX的值是用户模式下的值,二者意义是不一样的
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2002-06-05 09:19
仔细的看看关于VM的描述。
objectx
驱动牛犊
驱动牛犊
  • 注册日期2002-03-15
  • 最后登录2005-06-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-06-05 10:56
这是因为在windows下,系统会为每个客户线程模拟一套CPU的寄存器,所以pCRS的AX实际上是客户调用线程的AX值,而并非真正的
VM的寄存器值。故结果不一样。
游客

返回顶部