本书通过分析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
[内容简介]※ 一本在20世纪40年代首次出版的图书,对现今身处数字网络时代的我们而言,为何还如此重要?因为,它回答了一个当下依
《人生的每日忠告》内容简介:既然你热爱生活,就要爱它的。当满天的繁星落定,远处的歌声清灵地绽放,你询问手中的红莲,哪一朵光
全国计算机等级考试二级教程:公共基础知识(2008年版) 内容简介 本书是根据教育部考试中心*新颁布的《全国计算机等级考试二级公共基础知识考试大纲(2007年版...
《野哭:弘光列传》内容简介:作者对短命仅一载的弘光朝感到不能放下,而想把它重新唤回于人们记忆,于是,钩故索旧,大书特书。《
Learnhowtowriteidiomatic,effectivePythoncodebyleveragingitsbestfeatures.Pythonss...
《周作人散文》内容简介:《中华散文珍藏版:周作人散文》是“中华散文珍藏版”系列丛书之一种,精选了周作人经典散文90篇,如:《
TCP/IP最佳入门-原书第6版 本书特色 《TCP/IP *佳入门:因特网文原理与应用(原书第6版)》:详细说明TCP/IP的基本运作原理;包含协议分析-Et...
虚拟货币现在已经渗透到了世界的每个角落。从《暗黑破坏神3》里的金币、Facebook积分到飞行常客里程数,都是虚拟货币的多种形式。
《常春藤英语(精编版·七级)》内容简介:本书根据《常春藤英语·七级(一~四)》四本书进行修订,从中选取难度相对较低的文本,并
《Android 7应用程序开发教程》内容简介:Android系统是目前最为流行的智能手机操作系统之一,面向Android系统的应用开发是目前的技
《Android基础教程》内容完整丰富,具有较强的通用性,读者都能通过《Android基础教程》快速学习Android开发,提高相关技能。And
计算机程序设计艺术第1卷第1册(双语版) 内容简介 关于算法分析的这多卷论著已经长期被公认为经典计算机科学的定义性描述。迄今已出版的完整的三卷已经组成了程序设计...
Pro/Engineer Wildfire3.0基础设计与实践-(含光盘) 本书特色 本书首先以机械零件的建立为例提出问题,然后结合建模理论分析问题,再通过建模...
Pro/ENGGINEER野火版4.0基础教程与上机指导 (孙传祝) 本书特色 《Pro/ENGINEER野火版 4.0基础教程与上机指导》涵盖Pro/ENGI...
《雏菊与稚鸟》内容简介:本书内容精选自插画师那仁多年来的插画作品,书中有恬静的少女、可爱的动物、美丽的植物,以及生活中的小
实用Linux Shell编程 本书特色 本书系统地介绍了在linux系统中广泛使用的bash脚本语言。全书内容的安排由浅入深,体系合理。先讲解脚本的概念和学习...
《工业4.0背景下的两岸产业合作》内容简介:本书通过大量一手资料及数据,以工业4.0为背景探讨两岸产业合作,构建两岸产业合作研究
看遍了千篇一律的客厅、沙发、电视墙,住宅还有更多的可能性么?卫生间在居室中没有自然采光,如何让它自然亮起来?阳台除了种花
《跟阿铭学Linux》是一本入门级的Linux学习教材,适合初学者阅读。本书共分为两个部分:基础部分和实践部分。通过基础部分的学习
这是一本非常棒的书,主要讲解如何用Photoshop处理图片和做商业设计。《抠图+修图+调色+合成+特效Photoshop核心应用5项修炼》以案