关于蓝屏错误IRQL_NOT_LESS_OR_EQUAL

有一个驱动出现很几率性的蓝屏,蓝屏错误提示IRQL_NOT_LESS_OR_EQUAL,错误码0xa。

0xa错误码一般都是访问非法内存所致,而IRQL_NOT_LESS_OR_EQUAL单从字面上面来看不难看出——在IRQL级别高的地方访问了分页内存。


在内核编程中,核心栈只有大概两个页的大小,所以DDK文档中特意标注出,内核中不宜使用递归调用。

通过ExAllocatePoolWithTag申请内存分两种,一种是NonPagePool,一种是PagePool,可以根据当前需要分配使用。要是分配的内存比较小的话可以偷懒直接申请NonPagePool。见仁见智了。


微软关于错误码的解释:

http://msdn.microsoft.com/zh-cn/library/windows/hardware/ff560129(v=vs.85).aspx


欢迎纠错。

你可能感兴趣的:(windows内核)