如何通过编程检查特定代码是否可分页(使用静态分析方法)

时间:2013-02-13 09:29:26

标签: c++ windows kernel driver

使用任何静态代码分析工具或通过编码方法我想检查特定代码/函数及其所有调用函数是否可分页或不可分页。

我试图通过修改任何开源工具来实现它,并实现上述目标。

通过msdn,PAGED_Macro有一定程度的操作,但无法获得有关如何实现此目的的更多信息。

我是新手,任何帮助或建议都会感激你。

提前感谢。

1 个答案:

答案 0 :(得分:0)

似乎你混淆了两个不同的概念。 PAGED_CODE()宏验证代码是否在允许分页(IRQL <= APC_LEVEL)的级别执行。这并不意味着包含代码驻留在分页内存中。静态工具无法验证执行级别,因为它是动态运行时设置。

默认情况下,所有代码都驻留在非分页内存中。有一些预处理程序指令可用于将代码段放入指定的段中,而这些段又可以定义为可分页或不可分页。您可以在Making Driver Code or Data Pageable找到有关此主题的文档。