windows - #pragma alloc_text(PAGE, 函数名)

标签 windows winapi pragma virtual-memory

#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/

相关文章:

c# - 使用 Thrift 从 .NET 连接到 Cassandra

c - 需要一个在C语言中延迟而不清除缓冲区的函数

xcode - 在 GCC 中抑制 "does not implement protocol"警告

c++ - 在 C++ DLL 实例之间共享对象

c++ - 为什么在我显示无模式对话框后隐藏了选择?

c - IAR Pragma data_alignment 不工作

python - 为什么在我的 Windows 机器上,我必须将命令写为 "py -m pip install "模块名”而不是只写 "pip install "模块名”?

c++ - 奇怪的 WMI 查询结果

c++ - 对于中高级 C# 开发人员开始使用 Visual Studio 2010 C++ 有哪些好的引用资料?

c++ - 如何在 Windows 上创建通知气球?