#pramga alloc_text(PAGE, foo)
void foo(){ return; }
此代码通常用于设备驱动程序。
foo 函数将在系统需要时进行交换。
问题。
- 它在用户空间代码中工作吗?该功能是否也会被分页?
- 如果没有 pragma,我的意思是默认情况下,是否所有内核级函数都分配了非分页内存?
- PE 文件加载器是否决定函数的分配位置?
最佳答案
如果您编译一个简单的 hello world 驱动程序,那么您将看到名为“.text”的 PE(可移植可执行文件)部分将设置“不可分页”特征标志。所以是的,默认情况下,所有驱动程序代码都在该部分中,除非您将其标记为可分页,这将使其最终出现在“PAGE”部分而不是“.text”部分。
关于windows - #pragma alloc_text(PAGE, 函数名),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5132245/