【发布时间】:2011-03-24 17:42:17
【问题描述】:
1) 用户模式进程有自己的“地址上下文”,它将用户模式虚拟地址映射到唯一的物理页框集合。 也就是说,当 Windows XP 调度程序切换线程时,任何特定虚拟地址的含义都会随着时间的推移而变化。
“切换线程”的部分工作是更改页表,以便它们引用传入线程的进程上下文。
_
2) Windows 内核模式驱动程序在“任意线程上下文”中执行。
驱动程序可能会创建一个系统线程并在其上下文中工作……但我说的是不创建系统线程的情况。
驱动程序可以使用“ExAllocatePoolWithTag”来分配分页(易失性存储中的内存)。
_
3)那么驱动程序如何没有任何上下文访问分页内存?
如第 1 点所示,分页内存是通过“特定于上下文”的页表访问的。
当驱动程序在其他线程上下文中运行时...即页表条目指向与线程相关的 phy。 mem,那么驱动程序如何访问他的分页内存?
PS:我是内核编程的菜鸟。不要生气。
【问题讨论】:
标签: operating-system window kernel driver wdm