P119 Windows的所有程序(包括Ring0和Ring3层的程序)可以操作的都是虚拟内存。
4GB的虚拟内存会被分割成1M个(220个)页,每个页的大小为4KB(212个字节)。其中,有一部分单元会和物理内存对应起来;还有一部分单元会被映射成磁盘上的文件;还有一部分单元什么也没有对应,即空的。
P120 Windows操作系统在进程切换时,保持内核模式地址是完全相同的。也就是说,所有进程的内核地址映射完全一致,进程切换的时候,只改变用户模式地址的映射。
P121 驱动程序可以看成是一个特殊的DLL文件被应用程序加载到虚拟内存中,只不过加载地址是内核模式地址,而不是用户模式地址,它能访问的只是这个进程的虚拟内存,而不是其它进程的虚拟内存。需要指出的是,Windows驱动程序里的不同例程运行在不同的进程中。
使用如下代码可以看出当前代码运行在哪个进程的上下文中:
P122 Windows规定有些虚拟内存页面是可以交换到文件中的,这类内存被称为分页内存;而有些虚拟内存永远不会交换到文件中,这些内存被称为非分页内存。
P124 双向链表(这个数据结构在程序中常常用到,比较重要)
P140 LARGE_INTEGER数据结构的定义。这个结构也常常用到,很重要。