首页 > 代码库 > 内核文件ntoskrnl.exe,ntkrnlpa.exe的区别??

内核文件ntoskrnl.exe,ntkrnlpa.exe的区别??

除了标题中说到的两个exe文件之外,还有另外两个ntkrnlmp.exe和ntkrpamp.exe。因为我目前用到的只是标题中的两个。

其中,我在网上搜索到的关于SSDT HOOK 的资料,举的例子,全是关于ntoskrnl.exe。

而我在我自己的Win Xp系统电脑上用WINDBG查看,我的内核文件时ntkrnlpa.exe。

所以在写文档时,遇到这个内核文件不相等的问题,所以就来查一查。

 

简单来说,是同一套源代码根据编译选项的不同而编译出四个可执行文件,分别用于: 
ntoskrnl - 单处理器,不支持PAE 
ntkrnlpa - 单处理器,支持PAE 
ntkrnlmp - 多处理器,不支持PAE 
ntkrpamp - 多处理器,支持PAE 
在Vista之前,安装程序会在安装时根据系统的配置选择两个多处理器或者两个单处理器的版本复制到目标系统中。从Vista开始,会统一使用多处理器版本,因为多处理器版本运行在单处理器上只是效率稍微低一些。(如果有《软件调试》,可以读一下8.4节P185) 

内核文件ntoskrnl.exe,ntkrnlpa.exe的区别??