PAGED_CODE()是Windows驱动开发
PAGED_CODE()是Windows驱动开发中的一个宏定义,其作用是将当前函数标记为在分页(paged)代码中执行。
在Windows驱动程序中,内核使用分页机制将驱动代码加载到分页池(paged pool)中,通常分为分页代码和非分页代码。分页代码位于分页池中,可以被换入和换出到磁盘上的页文件,而非分页代码位于非分页池中,常驻在内存中。由于分页代码可能会被换出到磁盘上,内核不允许在分页代码中执行一些可能导致页面错误的操作,例如访问非分页内存或执行部分的用户模式指令。
因此,当驱动程序在分页代码中执行某个函数时,使用PAGED_CODE()来标记该函数的作用是告知编译器和静态代码分析工具,这个函数只会在分页代码中被调用。这样,编译器和静态代码分析工具可以检查该函数中的代码,以确保不会有可能引发页面错误的操作。
总而言之,PAGED_CODE()的作用是编写驱动代码时的一种最佳实践,用于确保在分页代码中执行的函数不会引发页面错误,并提高驱动的可靠性和稳定性