XP以后的系统都是两种方式的实现并存,一般现在的CPU都支持快速系统调用的。所以现在的系统一般都是通过快速系统调用方式,但是中断方式并没有被抛弃,仍然存在系统中,Windows有没有设置一个开关,可以选择使用哪种方式呢???
我推测通过修改内存
SharedUserData!SystemCallStub
这个内存中保存的函数地址就可以修改,把这个值修改为ntdll!KiIntSystemCall的值就应该可以修改系统调用的方式为中断方式了。
但是Windows有没有提供一个开关呢,不用这么暴力的方式来实现系统调用方式的改变????
好吧 没人回答我
自己又找到一点资料
系统在初始化的时候根据CPU是否支持快速系统调用而使该指针指向KiIntSystemCall()或者KiFastSystemCall();
所以我的想法应该是完全正确的。下面准备自己测试,直接修改SharedUserData!SystemCallStub的值来修改系统调用的完成方式。