本书通过分析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
《直播合规管理手册》内容简介:网络直播行业的健康发展不仅需要国家相关部门的严格监管,同时也需要相关从业者树立合规意识,约束
《跟老男孩学Linux运维:核心基础篇(上)》内容简介:本书是一本以企业Linux运维需要的知识为基础的实战型教学图书,书的内容并非
《卫青(中华先贤人物故事汇)【中宣部2022年主题出版重点出版物】》内容简介:在古今中外的军事史上,卫青堪称不世出的天才。本书
MSC Adams多体动力学仿真基础与实例解析-(赠1DVD) 本书特色 《mscadams多体动力学仿真基础与实例解析(附光盘)/万水msc技术丛书...
《庇护所》含金量极高,文字简明深刻,图片精美贴切,信息量之大、覆盖面之全、趣味性之佳让人叹为观止。书中将人类历史上出现过
《高速信号传输工程化技术:概念与方法》内容简介:本书对高速信号传输相关技术中需要掌握的概念、理论和方法深入浅出地给出了定义
ThisbookprovidesacomPrehensive,modemaPproachtosignalsandsystems,concentfatingont...
本书全面介绍了交互设计的基本理论,从界面设计、交互原理到用户体验,囊括了所有专业知识点,并通过列举大量具有开创性的交互设
全国计算机等级考试教程二级公共基础知识 本书特色 《全国计算机等级考试教程——二级公共基础知识》依据教育部考试中心*新发布的《全国计算机等级考试大纲》以及作者多...
本书提出了以理解和运用计算生态为目标的Python语言教学思想,不仅系统讲解了Python语言语法,同时介绍了从数据理解到图像处理的
Google是一家酷而迷人、整个互联网都为之疯狂的公司。在一定程度上,Google就代表着互联网搜索。它在人们的意识中已经达到这样一
本书是美国德保罗大学DePaulUniversity教授R.Johnsonbaugh等人长期从事算法课程教学经验的结晶,是一本关于算法基础知识和基本方
2015,中国以“一带一路”为纽带,选择和平与共享的方式,重新缔造与世界的关系;抗战胜利日大阅兵,对应的是70年前中国以血肉之
ThedesignersJasperMorrisonandNaotoFukasawahavecompiled204everydayobjectsinsearch...
UGNX4.0三维建模基础教程 内容简介 EDS公司的Unigraphics NX(后文简称为UG NX)是世界*顶级的CAD/CAE/CAM产品研发解决方案,...
《宋词三百首》内容简介:《宋词三百首》起初由朱祖谋编选。朱祖谋原名朱孝臧,字藿生,一字古微,一作古薇,号沤尹,又号彊村,浙
《数学家养成计划》内容简介:这本书,通过图文结合的方式,力图培养青少年的数学兴趣,普及知识。书中,每个知识点、理论或术语都
《跨海之战》内容简介:金门、海南和一江山三次跨海之战经历了一个相当复杂的过程。以三次战争为线索,体现国共双方在战略方针的较
《PowerShell for Office 365应用实战》内容简介:本书选取企业日常信息管理当中出现频率较高的应用场景,采用循序渐进的讲解方式,
《物联网应用开发项目教程(C51和STM32版)》内容简介:本书分为7个项目,按照从基础到技能提升的方式来组织内容,单个任务按照“任