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