本书通过分析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
《为什么精英都有超强专注力》内容简介:精英都在践行的专注力提升术! 多任务、分心时代,专注力是掌控自我、带来高绩效的关键解方
Needtoovercomeinformationoverloadandgetyourmessageacross?Infographicsareyoursecr...
《会海鸿泥录(精)》内容简介:本书收录了韦力于2015-2019年间,参加的主题与书相关的会议记录文章32篇。作者认为这些与书相关的会
《设计方法学》是一部讲授创新思维与设计方法的书籍,分上、下两篇。上篇是“思维篇”,通过对思维、心理、视觉等方面的大量研究
《读得懂的医学:消化的秘密》内容简介:本书由资深胃肠外科专科医生为大家普及一些常见的消化系统知识,通过真实的事例带您了解消
《移动通信(第4版普通高等教育十一五国家级规划教材)》由李建东、郭梯云、邬国扬编著,系统地阐述了现代移动通信的基本原理、基
《说服力·工作型PPT该这样做(第3版)》内容简介:工作型PPT,唯“快”不破!作为日常工作中的PPT,不能为了追求完美设计而无限度
《ASP.NET4高级程序设计(第4版)》,本书是ASP.NET领域的鸿篇巨制,全面讲解了ASP.NET4的各种特性及其背后的工作原理,并给出了许
佐藤可士和KashiwaSato,艺术指导,创意指导,1965年生于东京。1989年毕业于多摩艺术大学,毕业后进入日本知名广告公司“博报堂”
《品牌创造增长》内容简介:怎样建立品牌?怎样挖掘用户的隐性需求?对用户而言,你的产品只是一个名字,还是一个品牌?打造一个知
《安全之路:Web渗透技术及实战案例解析》是《Web渗透技术及实战案例解析》一书的第2版。《安全之路:Web渗透技术及实战案例解析
《黄同学漫画中国:清末民初那些年2》内容简介:1916—1928·大国战火·群雄逐鹿·军阀割据·枭雄涌现·市井生活·工业文明·宫廷秘
《万国衣冠拜冕旒:唐代卷》内容简介:《万国衣冠拜冕旒:唐代卷》全书通过对我大唐帝国时期大量文明遗产(包括各类工艺品、美术作
《网络是怎样连接的》内容简介:本书以探索之旅的形式,从在浏览器中输入网址开始,一路追踪了到显示出网页内容为止的整个过程,以
《直播启示录》内容简介:2020年年初,疫情之下的中国经济疲敝,百业待兴。电商直播因重新定义“人、货、场”的模型结构,以突破1万
《武将的一天》内容简介:本书通过展示古代武将(楚庄王熊吕、周瑜、完颜宗翰、拜答尔、王坚、戚继光)的一天,来表现不同历史时期
《超简单:用Python让Excel飞起来(核心模块语法详解篇)》内容简介:本书从Excel办公自动化涉及的Python模块中精选了4个核心模块,
SQL Server 2005技术内幕:查询、调整和优化 本书特色 通过专家们架构级的洞察力来优化企业级数据库以sql server**专家的视角,带你深入到s...
《想出头,先学会低头》内容简介:如果把人生比作爬山,那么有的人在山脚下刚刚起步,有的人正向山腰跋涉,有的人已信步顶峰。但不
本书通过实例的方式介绍了Macromedia公司的DreamweaverMX2004的使用方法和技巧。全书由14章组成,第1章和第2章介绍了软件的应用领