【发布时间】:2013-01-28 19:19:04
【问题描述】:
使用任何静态代码分析工具或通过编码方法,我想检查特定代码/函数及其所有调用函数是否可分页或不可分页。
我正在尝试通过对任何开源工具进行修改来实现它并实现上述目标。
通过 msdn,PAGED_Macro 有一定的操作级别,但无法获得太多信息如何实现这一点。
我是新手,如果有任何帮助或建议,将不胜感激。
提前致谢。
【问题讨论】:
使用任何静态代码分析工具或通过编码方法,我想检查特定代码/函数及其所有调用函数是否可分页或不可分页。
我正在尝试通过对任何开源工具进行修改来实现它并实现上述目标。
通过 msdn,PAGED_Macro 有一定的操作级别,但无法获得太多信息如何实现这一点。
我是新手,如果有任何帮助或建议,将不胜感激。
提前致谢。
【问题讨论】:
您似乎混淆了 2 个独立的概念。 PAGED_CODE() 宏验证代码是否在允许分页的级别执行 (IRQL <= APC_LEVEL)。这并不意味着包含代码驻留在分页内存中。静态工具无法验证执行级别,因为它是动态运行时设置。
默认情况下,所有代码都驻留在非分页内存中。有一些预处理器指令可用于将代码段放入指定的段中,而这些段又可以定义为可分页或不可分页。您可以在 Making Driver Code or Data Pageable 找到有关此主题的文档。
【讨论】: