windows内存

今天看来看windows内核的内存方面的东西,知道了有分页内存和非分页内存之分,那么什么是分页内存呢?大家都知道windows的虚拟内存管理,他使得不同的进程有不同的虚拟地址空间,从一个进程的当前线程切换到另一个进程的某个线程时,与进程相对应的虚拟地址空间也会被更换。
windows将操作系统的核心代码和驱动程序映射到每个进程的虚拟空间的0x80000000~0xFFFFFFFF区间上,使其服务和数据被所有进程共享,这一部分地址空间称为内核模式地址空间。
  不能简单的使用属于用户模式地址空间中的虚拟内存,因为当我们的驱动在运行时用户线程上下文也可能在切换。我们没有办法知道用户程序传来的指针是否还指向当初那块物理内存。
 另外用户模式地址空间总是分页的。
widows为决定代码和数据是否要驻留非分页池提供了一个简单的规则:执行在高于或等于DISPATCH_LEVEL级的代码不可以引发页故障,因此他们必须驻留与非分页池。

本文出自 “朽木磐石” 博客,谢绝转载!

你可能感兴趣的:(windows,程序,上下文,空间,虚拟内存)