本书通过分析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
“融合与开放的下一代网络丛书”系统地描述了作者在国家973计划、国家863计划、国家杰出青年科学基金和国家自然科学基金等项目的
内容简介:本书先简要介绍了如何用HTML5和CSS3制作网站,然后全面介绍了API和Canvas2D,接着介绍了如何在手机浏览器上开发HTML5相
《微信公众平台应用开发实战》是微信公众平台应用开发领域的经典著作,作者是腾讯公司的资深软件开发工程师,而且是微信公众平台
Photoshop 图像处理高手秘笈138招-(附赠多媒体光盘1张) 本书特色 九天视觉主编的这本《Photoshop图像处理高手秘笈138招》根据多位资深平面...
Adobe Illustrator CS5中文版经典教程 本书特色 adobe公司推出的权威经典教程畅销全球17年的著名品牌图书在全世界以27种语言火爆发行Ad...
《商业预测》内容简介:本书提供了一套完整的商业预测模型,该模型吸收了国外优秀预测机构的理念,如为谷歌、英特尔、微软等公司提
《现代货币理论在中国》内容简介:本书是一本主要由中国学者撰写的现代货币理论的入门书。书中从应对时代挑战角度解读现代货币理论
《Java多线程编程核心技术(第3版)》内容简介:现代软件规模大、实时性要求高,所以掌握提升处理和响应速度的多线程技术势在必行。
《Linux人工智能开发实例》内容简介:本书是一本介绍Linux知识和应用技术的书籍,包含嵌入式Linux系统概述和6个典型案例:音频分析
《通信系统》(第4版)对通信系统的基础理论和关键环节进行了深入分析,力图让学生在讨论中领会通信的精髓。全书首先给出通信系统的
繁琐的CSS规则和各浏览器支持度的不统一素来都为网页设计师所诟病。通过多年潜心研究与深入测试,作者归纳组合出了多达350条的设
ImportantnewinsightsintohowvariouscomponentsandsystemsevolvedPremisedontheideath...
在本书中,作者从设计思维的视角,探索了利用信息技术将医疗保健业引入体验经济的方式。在体验经济中,患者角色将转型为医疗产业
《Hadoop技术内幕》内容简介:本书由腾讯数据平台的资深Hadoop专家、X-RIME的作者亲自执笔,对Common和HDFS的源代码进行了分析,旨
可视化程序设计与C#.NET语言 本书特色 visual c#.net是面向对象的可视化程序设计语言,具有简洁、高效 、安全、性能优良等特点,是面向对象程序设计...
《清华法治论衡(第27辑)》内容简介:马克斯·韦伯是19世纪到20世纪最杰出的社会学家与法学家,其研究涉及法学、社会学、政治学、
HowtoBreakSoftwareisadeparturefromconventionaltestinginwhichtestersprepareawritt...
计算机公共课考点分析与题解-(第二版) 本书特色 《计算机公共课考点分析与题解(第2版)》:普通高等教育“十一五”规划教材。精炼知识,直击考点讲解透彻,重点突破...
C#数据库系统开发完全手册-数据库管理系统开发从技术到实践(附光盘) 本书特色 本书全面、系统地介绍了使用C#进行数据库应用程序开发必须掌握的技术、方法和过程。...
本书概述了云计算的起源、发展以及商业模式,介绍了云计算的关键技术、典型应用以及开源软件和社区。云计算既是机遇也是挑战,中