《Windows深入剖析 内核篇》求取 ⇩

第一章基础知识1

1.1 保护模式概述1

1.1.1 保护模式的渊源1

1.1.2 什么是保护模式1

1.2 分段机制和段描述符表2

1.3 段页式寻址机制7

1.4 保护模式下的异常9

1.5 保护模式下的寄存器和新增指令集9

1.6 介绍Soft -ICE for Windows12

2.1 Windows 可执行文件首部的格式15

第2章Windows 内核数据结构15

2.1.1 MS-ODS文件头16

2.1.2 MS-Windows 文件头17

2.1.3 Windows 代码段中的重定位信息24

2.1.4 Windows 可执行文件实例剖析25

2.2 Windows 的模块表32

2.2.1 模块表33

2.2.2 Windows 模块表实例剖析——DERNEL的模块表36

2.3 Windows 的默认数据段38

2.4 Windows 的任务数据库(TDB)39

2.4.1 任务数据库TDB39

2.4.2 任务数据库实例剖析——progman 的TDB42

2.5 END 结构及INTWNDCLASS结构45

2.4.3 PSP与 PDB45

2.6 Windows中的重表——THHOOK47

第3章Windows内核引导过程53

3.1 Windows启动过程的回顾53

3.2 DERNEL 初始化过程概述54

3.3 DRNL386 EXE的STUB程序55

3.4 DRNL386 的STUB程序清单55

3.5 BOOTSTRAP的执行过程58

3.5.1 BOOTSTRAP1的执行过程58

3.5.2 BOOTSTRAP2的执行过程60

3.5.3 初始分全局堆——GlobalInit()62

3.6 BOOTSTRAP源程序清单精选64

3.5.4 创建模块表64

第4章Windows 的启动和终止100

4.1 Windows 内核初始化的流程100

4.1.1 Windows 内核初始化的实现流程100

4.1.2 程序段0117:DI182 -DI19F102

4.1.3 程序段0117:DIAB-D212103

4.1.4 Windows 怎样满足同时打开很多文件的需要?105

4.1.5 0117:D2CB-D·E6程序段106

4.1.6 0117:D764-D769程序段107

4.2 Windows 内核初始化程序清单107

4.3 退出Windows 内核的过程139

4.3.1 ExitWindows()例程139

4.3.2 ExitKernel()例程140

5.1 Windows 内存管理概述144

第5章Windows 内存管理机制144

5.2 内存管理中的数据结构146

5.2.1 ButgerMaater段146

5.2.2 全局堆信息与全局场146

5.2.3 局部堆与局部场149

5.3 全局堆中内存埠的组织形式154

5.3.1 空闲链表154

5.3.2 LRU链表154

5.4 全局内存分配标记的含义157

5.5 Windows 的内存管理函数158

5.5.1 全局堆内存管理函数158

5.5.2 局部堆与局部场159

5.6 GlobalAlloe()160

5.6.1 CheckAllocValidty()164

5.6.2 SubCheckAllocValidty()167

5.6.3 SubGAlloc()167

5.6.4 AllocMemory()171

5.6.5 FindFreeLow ()178

5.6.6 AllocFreeLow()179

5.6.7 MoveBlockNearBy()185

5.6.8 CheckBlockNearBy()185

5.6.9 MoveFreeLow()186

5.6.10 StorageBackward()189

2.6.11 MarkSwapPgge()190

5.6.12 CheckFreeBorder()191

5.6.13 ModiGlobalArena()192

5.6.14 IsertIdleLink()193

5.6.15 Sublnsert()194

5.6.16 BreakIdleLink()195

5.6.17 UnifyFreeBlock()195

5.6.18 GrowHeap()196

5.6.19 GetDPMIInfo()200

5.6.20FreeDPMIBlock()201

5.6.21 UnkinkWin386 Blick()202

第6章Windows模导体装载机制205

6.1 模块的基本概念205

6.2 实例和任务的概念205

6.3 模块装载函数——Load Mldule()207

6.4.1 检测指定模块是否已经装入内存的函数——CheckLoadingModule()213

6.4 模块装载函数的重要辅助例程213

6.4.2 为已装入模块创建新实例的函数——CreateNewInstance()216

6.4.3 文件打开函数——OpenModuleFile()221

6.4.4 模块表创建函数——CreateMDB()222

6.4.5 模块标记检测函数——CheckModuleFlag()225

6.4.6 TDB和DLL引用链表段的段的创建函数——CreaetTask()227

6.4.7 任务数据库人创建函数——CreateTDB()229

6.4.8 任务模块PDB的初始化函数——InitPDB()235

6.4.9 模块内存分配函数——DoMlduleAlloc()237

6.4.10段内存分配函数——AollocMlduleSeg()240

6.4.11 引用DLL的装入函数——LoadImportDll()243

6.4.12 段装载函数——LoadModuleSeg()246

6.4.13 运行已装载模块的函数——RunNew Module()249

6.4.14 模块初始化函数——InitModule()251

6.4.15 库模块的初始化函数——InityDllModule()254

6.4.16 应用程序模块的初始化函数——InitAppModule()256

6.4.17 任务启动函数——StatNewTask()259

6.5 段的装载261

6.5.1 段装载函数——LoadSegment()261

6.5.2 内存分配函数——FarMyAlloc()263

6.5.3 段数据复制函数——CopySeg()265

6.5.4 重复段创建函数——CreateIteratedSeg()269

6.4.5 前序代码修改函数——PatchCodeHandle()272

6.6 被装载模块的重定痊277

6.6.1 System.drv中段选择符的重定位278

6.6.2 Keyboard.drv中函数指针(段:偏移)的重定位279

6.6.3 System.drv中函数指针(段:偏移)的重定位279

6.6.4 System.drv中常量函数的重定位279

6.7 缓存文件句柄对照表289

6.8 模块的卸载过程293

6.8.1 模块函数——DeleteModule()296

6.9 自装载Windows的应用程序298

6.9.1 为什么要引入自装载问题298

6.9.2 如何创建一个自装载程序298

6.9.3 装载函数300

6.9.4 段重载函数——LoadAppSeg()302

6.9.6 内存分配函数——MyAlloc()305

6.9.5 硬件复位函数——EXITPROC()305

6.9.7 所有者设置函数——SetOwner()307

6.9.8 入口点获取函数——EntryAddrProc()308

第7章Windows任务的启动和关闭310

7.1 Windows任务的启动代码310

7.2 Windows中任务的启动317

7.2.1 任务初始化函数Ⅰ——InitTask317

7.2.2 任务启动函数 Ⅱ——WaitEvent322

7.2.3 任务启动函数Ⅲ——InitApp()322

7.2.4 TSR装载程序——LoadTSRApp()322

7.4 Windows中任务的终止327

7.4.1 任务终止函数——ExitTask()327

7.3 任务的入口函数——WinMain()327

第8章Windows动态链接机制333

8.1 动态链接机制333

8.1.1 动态链接机制333

8.1.2 动态链接库与应用程序的比较334

8.1.3 动态链接与静态链接的比较336

8.1.4 动态链接库的实例剖析338

8.2 动态链接库的启动代码342

8.3 动态链接库函数348

8.3.1 库装载和卸载函数348

8.3.2 库的初始化函数353

8.3.3 库中引出函数入口点的获取函数355

8.3.4 库清理函数 WEP()375

8.4.1 IncExeUsage()376

8.4 动态链接库引用次数的设置376

8.4.2 DecExeUsage()381

8.5 Windows的前置代码(Ptologs)和后续代码(Epilogs)384

8.5.1 概述384

8.5.2 应用程序的前置代码和后续代码384

8.5.3 应用程序的灵巧回调(Smart CallBack)385

8.5.4 DLL的前置代码和后续代码386

8.5.5 实模式下的前置代码387

8.5.6 保护蕈式下的前置代码387

8.5.7 过程实例块的创建和释放函数388

9.1 多任务机制395

9.2 抢先式调度策略395

第9章 Windows任务调度机制395

9.3 非抢先式调度策略396

9.3.1 事件396

9.3.2 优先级397

9.3.3控制权的释放397

9.4 源程序说明399

9.4.1 WaitEvent()399

9.4.2 Directedyield()400

9.4.3 Yield()401

9.4.4 UserYield()401

9.4.5 OldYcild()402

9.4.6 PostEvent()403

9.4.7 SetPriority()403

9.4.8 ReSchedule()407

第10章Windows消息驱动机制422

10.1 Windows的消息结构423

10.2 Windows的任务队列424

10.3 Windows的系统队列424

10.4 消息队列的创建432

10.4.1 系统队列的创建——CreateSystemQueue432

10.4.2 任务队列的创建——CreateTaskQueue432

10.4.3 消息队列的创建——CreateQueue433

10.5 Windows的消息类型434

10.5.1 键盘消息——Qs_Key435

10.5.2 鼠标消息——Qs_Mouse436

10.5.3 时钟消息——Qs_Timer437

10.5.4 屏幕重绘消息——Qs_Paint441

10.5.5 传送消息——Qs_PoatMsg442

10.5.6 发送消息——Qs_SendMsg443

10.6 Windows的消息值443

10.7 Windows的消息函数444

10.7.1 消息标记获取函数445

10.7.2 消息发送函数1448

10.7.3 消息应答函数460

10.7.4 消息获取函数462

10.7.5 消息传递函数476

10.7.6 消息发送函数2481

附录DPMI功能调用484

参考文献496

1997《Windows深入剖析 内核篇》由于是年代较久的资料都绝版了,几乎不可能购买到实物。如果大家为了学习确实需要,可向博主求助其电子版PDF文件(由杨亮等编著 1997 北京:清华大学出版社 出版的版本) 。对合法合规的求助,我会当即受理并将下载地址发送给你。

高度相关资料

内存管理深入剖析(1995 PDF版)
内存管理深入剖析
1995 北京:电子工业出版社
深入解析JAVA编译器  源码剖析与实例详解(2020 PDF版)
深入解析JAVA编译器 源码剖析与实例详解
2020
数学通报  1993年2月  深入剖析“微积分基本定理”的内涵( PDF版)
数学通报 1993年2月 深入剖析“微积分基本定理”的内涵
FoxPro实用教程(1994 PDF版)
FoxPro实用教程
1994 南京:南京大学出版社
深入使用中文版Windows 98(1998 PDF版)
深入使用中文版Windows 98
1998 北京:北京航空航天大学出版社
深入Windows 98中文版傻瓜书(1999 PDF版)
深入Windows 98中文版傻瓜书
1999 北京:清华大学出版社
MS-DOS5.0内核剖析  中册(1992 PDF版)
MS-DOS5.0内核剖析 中册
1992 西安:西安电子科技大学出版社
Windows NT 深入浅出(1998 PDF版)
Windows NT 深入浅出
1998 北京:海洋出版社
UNIX SYSTEM V操作系统内核代码剖析(1992 PDF版)
UNIX SYSTEM V操作系统内核代码剖析
1992 北京:海洋出版社
内科疑难病案剖析(1997 PDF版)
内科疑难病案剖析
1997 北京:中国科学技术出版社
进一步深入Windows 傻瓜书(1996 PDF版)
进一步深入Windows 傻瓜书
1996 北京:清华大学出版社
党内违纪案件剖析(1989 PDF版)
党内违纪案件剖析
1989 北京:学苑出版社
UNIX SYSTEM V内核剖析 研究报告(1990 PDF版)
UNIX SYSTEM V内核剖析 研究报告
1990 北京:电子工业出版社
PowerBuilder 4.0 for windows 深入编程(1997 PDF版)
PowerBuilder 4.0 for windows 深入编程
1997 北京:电子工业出版社
NetWare 3.X 深入剖析 服务器内核篇(1997 PDF版)
NetWare 3.X 深入剖析 服务器内核篇
1997 北京:清华大学出版社