本书通过分析ReactOS的源代码介绍了Windows内核各个方面的结构、功能、算法与具体实现。全书从“内存管理”、“进程”、“进程间通信”、“设备驱动”等多个方面进行分析介绍,所有的分析都有ReactOS的源代码(以及部分由微软公开的源代码)作为依据,使读者能深入理解Windows内核的方方面面,也可以使读者的软件开发能力和水平得到提高。.
本书可供大学有关专业的高年级学生和研究生用做教学参考,也可供广大的软件工程师,特别是从事系统软件研发的工程师用于工作参考或用做进修教材。...
上 册
第1章 概述 1
1.1 Windows操作系统发展简史 1
1.2 用户空间和系统空间 3
1.3 Windows内核 4
1.4 开源项目ReactOS及其代码 9
1.5 Windows内核函数的命名 10
第2章 系统调用 12
2.1 内核与系统调用 12
2.2 系统调用的内核入口KiSystemService() 22
2.3 系统调用的函数跳转 29
2.4 系统调用的返回 32
2.5 快速系统调用 35
2.6 从内核中发起系统调用 42
第3章 内存管理 44
3.1 内存区间的动态分配 47
3.1.1 内核对用户空间的管理 48
3.1.2 内核对于物理页面的管理 60
3.1.3 虚存页面的映射 67
3.1.4 Hyperspace的临时映射 78
3.1.5 系统空间的映射 86
3.1.6 系统调用NtAllocateVirtualMemory() 90
3.2 页面异常 97
3.3 页面的换出 107
3.4 共享映射区(Section) 115
3.5 系统空间的缓冲区管理 133
第4章 对象管理 136
4.1 对象与对象目录 136
4.2 对象类型 148
4.3 句柄和句柄表 162
4.4 对象的创建 169
4.5 几个常用的内核函数 179
4.5.1 ObReferenceObjectByHandle() 179
4.5.2 ObReferenceObjectByPointer() 187
4.5.3 ObpLookupEntryDirectory() 188
4.5.4 ObpLookupObjectName() 192
4.5.5 ObOpenObjectByName() 209
4.5.6 ObReferenceObjectByName() 213
4.5.7 ObDereferenceObject() 214
4.6 对象的访问控制 218
4.7 句柄的遗传和继承 218
4.8 系统调用NtDuplicateObject() 223
4.9 系统调用NtClose() 233
第5章 进程与线程 241
5.1 概述 241
5.2 Windows进程的用户空间 253
5.3 系统调用NtCreateProcess() 273
5.4 系统调用NtCreateThread() 284
5.5 Windows的可执行程序映像 300
5.6 Windows的进程创建和映像装入 305
5.7 Windows DLL的装入和连接 329
5.8 Windows的APC机制 358
5.9 Windows线程的调度和切换 381
5.9.1 x86系统结构与线程切换 382
5.9.2 几个重要的数据结构 385
5.9.3 线程的切换 388
5.9.4 线程的调度 395
5.10 线程和进程的优先级 409
5.11 线程本地存储TLS 421
5.12 进程挂靠 434
5.13 Windows的跨进程操作 442
5.14 Windows线程间的相互作用 450
第6章 进程间通信 467
6.1 概述 467
6.2 共享内存区(Section) 469
6.3 线程的等待/唤醒机制 470
6.4 信号量(Semaphore) 499
6.5 互斥门(Mutant) 505
6.6 事件(Event) 512
6.7 命名管道(Named Pipe)和信插(Mailslot) 516
6.8 本地过程调用(LPC) 521
6.9 视窗报文(Message) 555
第7章 视窗报文 556
7.1 视窗线程与Win32k扩充系统调用 556
7.2 视窗报文的接收 566
7.3 Win32k的用户空间回调机制 590
7.4 用户空间的外挂函数 602
7.5 视窗报文的发送 615
7.6 键盘输入线程 628
7.7 鼠标器输入线程 642
7.8 默认的报文处理 662
第8章 结构化异常处理 665
8.1 结构化异常处理的程序框架 666
8.2 系统空间的结构化异常处理 683
8.3 用户空间的结构化异常处理 710
8.4 软异常 720
下 册
第9章 设备驱动 729
9.1 Windows的设备驱动框架 729
9.2 一个“老式”驱动模块的实例 745
9.3 DPC函数及其执行 769
9.4 内核劳务线程 778
9.5 一组PnP设备驱动模块的实例 783
9.6 中断处理 817
9.7 一个过滤设备驱动模块的示例 828
9.8 设备驱动模块的装载 830
9.9 磁盘的设备驱动堆叠 858
9.9.1 类驱动disk.sys 860
9.10 磁盘的Miniport驱动模块 887
9.11 命名管道与Mailslot 896
9.12 MDL 918
9.13 同步I/O与异步I/O 932
9.14 IRP请求的完成与返回 946
第10章 网络操作 957
10.1 概述 957
10.2 NDIS及其实现 959
10.3 Windows的网络驱动堆叠 974
10.3.1 NIC驱动 975
10.3.2 LAN驱动模块 997
10.3.3 TCP/IP驱动模块 1014
10.3.4 AFD驱动与Winsock 1035
10.4 Socket的无连接通信 1062
10.5 Socket的有连接通信 1089
10.6 Winsock的实现 1093
第11章 文件操作 1099
11.1 Win32 API函数CreateFileW() 1099
11.2 NT路径名 1109
11.3 文件路径名的解析 1119
11.4 FAT32文件系统 1144
11.5 文件系统驱动的装载和初始化 1169
11.6 文件卷的安装 1175
11.7 文件的创建 1199
11.8 缓存管理 1214
11.9 文件的读写 1237
11.10 NTFS文件系统简介 1252
第12章 操作系统的安全性 1278
12.1 概述 1278
12.2 证章 1289
12.3 安全描述块和ACL 1305
12.4 访问权限检查 1322
第13章 注册表 1351
13.1 注册表操作 1351
13.2 注册表的初始化和装载 1369
13.3 库函数RtlQueryRegistryValues() 1376
第14章 系统管理进程与服务进程 1394
14.1 系统管理进程Smss 1394
14.2 Windows子系统的服务进程Csrss 1408
14.3 服务管理进程Services 1424
14.4 服务进程Svchost 1449
跋 1464
参考文献 1466
《作家榜名著:你一定爱读的中国近代史》内容简介:◆忠实原著:以民国二十七年艺文研究会的初始定版为底本,全新精校典藏。◆精美
《更好更年期》内容简介:为什么出版这本书:1.更年期不仅是医学议题,也折射出女性的社会地位,女性的自我定位和价值体现以及新时
大数据挖掘与分析在金融领域中的应用研究 内容简介 《大数据挖掘与分析在金融领域中的应用研究》阐述了大数据技术在金融领域的应用和发展现状,从大数据视角加以思考和探...
Websitedesignanddevelopmentcontinuestobecomemoresophisticated.Animportantpartoft...
五笔字词速查词典第2版 本书特色 1999年五笔教学研究组在北京金桥电脑学校成立成员都是有着丰富教学经验的电脑培训中心的教师,随着全国五笔爱好者的不断加入,成员...
《阿里铁军销售法》内容简介:如何用一个小动作引发客户兴趣? 客户不愿意签,怎么让他回心转意? 如何抓住最佳成交时机? 优质客户
《Python学习手册(第3版)》讲述了:Python可移植、功能强大、易于使用,是编写独立应用程序和脚本应用程序的理想选择。无论你是刚
JOSHUABLOCH是Google的首席工程师,以及获得过Jolt最畅销奖的《高效Java编程语言指南(EffectiveJavaProgrammingLan...
内容提要为加快我国电信发展的现代化步伐,必须尽可能采用高新电信技术和设备。与传统的PDH网相比,SDH网能更好地满足电信网朝着
Themostcomprehensiveguideavailableontherapidly-expandingfieldofHCI,thisbookillus...
《中国资本市场研究报告(2019)》内容简介:本研究报告是中国人民大学金融与证券研究所(Finance and Securities,FSI)所长吴晓求
《AIoT系统开发》内容简介:本书融合了人工智能和物联网两大热点技术,将人工智能中的优越方法应用到物联网的构建中,以形成更加智
计算机编译原理-第三版 本书特色 张幸儿编著的这本《计算机编译原理(第3版)》是普通高等教育“十一五”国家级规划教材。计算机编译原理是计算机专业的重要专业基础课...
PHP标准教程-附赠光盘 内容简介 本书由浅入深,全面、系统地介绍了php开发技术。本书提供了大量实例,供读者实战演练。另外,本书附带大量配套教学视频,帮助读者...
暢銷書《如何成為頂尖設計師》是一本實用的設計師指南,對任何想設計出有意義的作品,又不想放棄自己想法的設計師來說,非常有幫
《梳理:从混乱到有序,人生提效50%》内容简介:毕业在即,考研还是工作?自己想要的到底是什么?很迷茫; 逛知乎、看豆瓣、浏览微
《成为被喜欢的品牌:如何获得消费者的非理性忠诚》内容简介:在物质丰富与信息冗余的时代,消费者的注意力严重分散,品牌的传播遭
Thisbookexplorestheintuitiveappealofneuralnetworksandthegeneticalgorithminfinanc...
《丝绸之路:从蓬莱到罗马》内容简介:山东蓬莱是古代海上丝绸之路的一个起点,也是陆上丝绸之路的东部起点;而罗马作为西欧文明的
《爸爸爱喜禾:你一直在和自己玩》内容简介:口碑爆棚!写给自闭症患者家庭的希望及欢笑之书! 《见字如面》深情朗读,于丹、崔永元