阅读:1352回复:5
请教:操作系统是如何把 *.vxd 驱动程序加载为ring0级的?
?
|
|
|
沙发#
发布于:2002-11-04 14:28
vxd is running in the level of ring0.
|
|
板凳#
发布于:2002-11-04 17:05
怎么也得有个过程吧!
操作系统把磁盘上的*.vxd引导进内存以后,肯定是要判断某一些特征字段,然后断定其是合法的驱动程序,然后给他 0级的权限的。现在我就想搞清楚操作系统是如何给*.vxd ring0操作权限的。就是这个问题。 而不是讨论*.vxd被加载以后,是否处于0级权限上。 |
|
|
地板#
发布于:2002-11-04 17:27
给你推荐一本书:《Windows 系统编程奥秘》, 讲得很透彻
|
|
|
地下室#
发布于:2002-11-04 17:32
有电子文档吗?
|
|
|
5楼#
发布于:2002-11-05 11:04
我觉得过程应该是这样的:
vxd的装载程序本身就处于ring0, 当它检查所载入的文件是一个合法的vxd的时候,只需要call或者jmp到该vxd程序的入口地址,那么该vxd就获得了ring0的特权。 如果载入的是一个application,那么装载程序应该向栈里压入入口地址和一个ring3的代码段描述符(在win2k下应该是1B),然后用iret跳转到application的入口地址,这样application就在ring3下运行了。 |
|
|