现在的位置: 首页 > 综合 > 正文

在DISPATCH_LEVEL或更高LEVEL不能使用分页内存的根本原因

2011年05月12日 ⁄ 综合 ⁄ 共 237字 ⁄ 字号 评论关闭

MSDN的文档只是说不能,但没有说清楚到底为啥。

微软的Doron在他的博客里提了一下,http://blogs.msdn.com/b/doronh/archive/2010/02/02/what-is-irql.aspx,但是还是没有说的太清楚。

其实使用分页内存的时候,如果访问Swap out的内存会触发0E号异常(KiTrap0E),会间接调用MmAccessFault。出于同步要求,他要求提升IRQL至APC_LEVEL。总之,缺页处理是在APC_LEVEL上处理的。

抱歉!评论已关闭.