guoj
驱动小牛
驱动小牛
  • 注册日期2001-04-02
  • 最后登录2014-02-14
  • 粉丝3
  • 关注0
  • 积分15分
  • 威望55点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
阅读:1352回复:5

请教:操作系统是如何把 *.vxd 驱动程序加载为ring0级的?

楼主#
更多 发布于:2002-11-04 09:49
guoj
taosa
驱动牛犊
驱动牛犊
  • 注册日期2002-07-29
  • 最后登录2005-01-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-11-04 14:28
vxd is running in the level of ring0.
guoj
驱动小牛
驱动小牛
  • 注册日期2001-04-02
  • 最后登录2014-02-14
  • 粉丝3
  • 关注0
  • 积分15分
  • 威望55点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-11-04 17:05
怎么也得有个过程吧!
  操作系统把磁盘上的*.vxd引导进内存以后,肯定是要判断某一些特征字段,然后断定其是合法的驱动程序,然后给他 0级的权限的。现在我就想搞清楚操作系统是如何给*.vxd ring0操作权限的。就是这个问题。
   而不是讨论*.vxd被加载以后,是否处于0级权限上。
guoj
Tom_lyd
驱动大牛
驱动大牛
  • 注册日期2001-09-02
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-11-04 17:27
给你推荐一本书:《Windows 系统编程奥秘》, 讲得很透彻
Tom_lyd
guoj
驱动小牛
驱动小牛
  • 注册日期2001-04-02
  • 最后登录2014-02-14
  • 粉丝3
  • 关注0
  • 积分15分
  • 威望55点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-11-04 17:32
有电子文档吗?
guoj
archim
驱动牛犊
驱动牛犊
  • 注册日期2001-08-18
  • 最后登录2006-03-17
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-11-05 11:04
我觉得过程应该是这样的:

vxd的装载程序本身就处于ring0, 当它检查所载入的文件是一个合法的vxd的时候,只需要call或者jmp到该vxd程序的入口地址,那么该vxd就获得了ring0的特权。

如果载入的是一个application,那么装载程序应该向栈里压入入口地址和一个ring3的代码段描述符(在win2k下应该是1B),然后用iret跳转到application的入口地址,这样application就在ring3下运行了。
archim
游客

返回顶部