WindowsNT高级编程技术PDF电子书下载
- 电子书积分:15 积分如何计算积分?
- 作 者:(美)Jeffrey Richter著;郑全战等译
- 出 版 社:北京:清华大学出版社
- 出版年份:1994
- ISBN:7302016275
- 页数:497 页
第一章 进程与线程 1
1.1 Windows NT Executive对象 2
1.2 创建进程:CreateProcess函数 3
1.2.1 lpszImageName 4
1.2.2 lpszCommandLine 4
1.2.3 lpsaProcess,lpsaThread,fInheritHandles 5
1.2.4 fdwCreate 6
1.2.5 lpvEnvironment 7
译者序 7
目录 7
1.2.6 lpszCurDir 8
1.2.7 lpsiStartInfo 8
鸣谢 9
前言 11
1.2.8 lppiProcInfo 11
1.3 终止进程 13
1.3.1 ExitProcess函数 13
1.3.2 TerminateProcess函数 13
1.3.3 进程的结束 14
1.4 何时创建线程 14
1.5 何时不用创建线程 16
1.6 线程的生命周期 17
1.6.1 产生线程:CreateThread函数 17
1.6.2 幸存的WinMain函数 19
1.6.3 终止线程 21
1.7 识别自己的身份 23
1.8 Windows NT如何调度线程 26
1.8.1 进程优先级类 27
1.8.2 修改进程优先级类 28
1.8.3 设定线程相对优先级 29
1.8.4 挂起及恢复线程 30
1.9 子进程 31
1.9.1 运行分离的子进程 32
1.10 查看系统内部 32
1.11 进程、线程和C运行时库 37
第二章 堆内存管理 40
2.1 我所知的CPU 40
2.2 全局和局部堆API 42
2.2.1 可移植到Win32的16位Windows函数 45
2.2.2 有语义变化的函数 46
2.2.3 应该避免使用的函数 47
2.3.1 应用程序保护 48
2.2.4 已经不再使用的函数 48
2.3 创建自己的Win32堆 48
2.3.2 有效的内存管理 49
2.3.3 局部访问 49
2.3.4 Win32堆API 50
2.3.4.1 HeapCreate 50
2.3.4.2 GetProcessHeap 51
2.3.4.3 HeapAlloc 51
2.3.4.4 HeapSize 52
2.3.4.5 HeapReAlloc 52
2.3.4.6 HeapFree 53
2.3.4.7 HeapDestroy 53
2.4 在C++中使用堆 53
3.1 使用虚拟内存 58
第三章 虚拟内存管理 58
3.1.1 保留地址空间 59
3.1.2 提交内存 60
3.1.3 保留地址空间同时提交内存 61
3.1.4 使用地址空间 61
3.1.5 释放地址空间 62
3.1.6 虚拟内存分配示例应用程序 64
3.1.7 修改保护属性 74
3.1.8 确定地址空间状态 75
3.1.9 虚拟内存映像示例程序 76
3.1.10 系统状态示例应用程序 87
3.1.11 不把内存切换到页面文件中 93
3.1.12 虚拟内存统计 93
3.1.12.1 虚拟内存状态示例程序 94
3.2 设计强壮的应用程序 99
第四章 内存映射文件 101
4.1 操纵文件数据:样例学习 101
4.1.1 方法1:一个文件,一个缓冲区 101
4.1.2 方法2:二个文件,一个缓冲区 102
4.1.3 方法3:一个文件,两个缓冲区 102
4.1.4 方法4:一个文件,0缓冲区(无需缓冲) 102
4.2 使用内存映射文件 103
4.3 内存映射文件讨论 106
4.3.1 文件倒置示例应用程序 107
4.3.2 映射文件的一点麻烦 111
4.4 用内存映射文件共享数据 112
4.4.1 如何利用内存映射文件共享内存 113
4.4.2 内存映射文件共享示例应用程序 115
4.5 如何用内存映射文件管理可执行文件和DLL 122
第五章 线程同步 124
5.1 线程同步概述 124
5.1.1 最坏的事情之一 124
5.2 临界区 125
5.2.1 创建临界区 127
5.2.2 使用临界区 128
5.2.3 用临界区同步GDI对象 133
5.2.4 临界区示例应用程序 134
5.3 用Windows NT对象进行同步 145
5.3.1 互斥量 148
5.3.1.1 使用互斥量来代替临界区 149
5.3.1.2 互斥量示例应用程序 153
5.3.2 信号量 161
5.3.2.1 超级市场示例应用程序 162
5.3.3 事件 184
5.3.3.1 人工重置事件 185
5.3.3.2 Bucket of Balls示例应用程序 186
5.3.3.3 自动重置事件 202
5.3.3.4 文档统计示例应用程序 202
5.4 线程挂起 210
5.4.1 Sleep 210
5.4.2 异步文件I/O 210
5.4.3 WaitForInputIdle 210
5.4.4 MsgWaitForMultipleObjects 211
5.4.5 WaitForDebugEvent 212
5.4.6 Interlocked函数族 212
第六章 Win32子系统环境 214
6.1 多任务 214
6.1.1 抢占式调度 215
6.2 Windows NT的客户/服务器结构 217
6.2.1 进程线程和代理线程是如何一起工作的 218
6.3 线程信息 219
6.4 非序列化输入 225
6.4.1 Windows NT怎样使输入非序列化 225
6.4.1.1 共享线程输入队列 226
6.5 局部输入状态 228
6.5.1 键盘输入和焦点 229
6.5.2 鼠标光标管理 232
6.5.3 局部输入状态实验示例程序 233
6.6 线程队列和消息处理 248
6.6.1 发送消息给线程的消息队列 248
6.6.2 发送消息给窗口 249
6.6.3 用消息发送数据 252
6.6.4 拷贝数据示例应用程序 254
第七章 动态连接库 260
7.1 动态连接库如何从16位Windows变到Windows NT 260
7.1.1 16位Windows如何向应用程序提供DLL 260
7.1.2 Windows NT如何提供DLL给进程使用 261
7.1.3 进程间使用DLL局部堆共享数据 262
7.2 LibMain、DllEntryPoint、DllMain的比较 263
7.2.1 进程和线程的装入和卸下规则 265
7.2.2 DLL和C运行库 266
7.3 划分进程地址空间 268
7.3.1 DLL的基址 269
7.4 EXE或DLL的段 275
7.5 模拟GetModuleUsage函数:ModUse示例程序 278
7.6 禁止运行应用程序的多个实例:MultInst示范程序 285
7.7 从DLL中输出函数 286
7.8 从DLL输出数据 288
7.9 动态连接库和钩子函数 290
7.10 其它进程产生的子类窗口 292
7.10.1 Program Manager Restore示例程序 293
7.11 16位Windows的GlobalNotify函数 304
7.12 GMEM_SHARE和GMEM_DDESHARE标志 304
第八章 线程局部存储 306
8.1 动态线程局部存储 307
8.1.1 使用动态线程局部存储 308
8.1.2 动态线程局部存储示例应用程序 310
8.2 静态线程局部存储 318
8.2.1 静态局部存储示例应用程序 319
第九章 文件系统和文件输入输出 327
9.1 Windows NT的文件约定 328
9.2 系统和卷操作 329
9.2.1 获得卷的特定信息 332
9.2.2 磁盘信息查看示例应用程序 336
9.3 目录操作 343
9.3.1 获得当前目录 343
9.3.2 改变当前目录 344
9.3.3 获得系统目录 344
9.3.4 获得目录路径 345
9.3.5 创建和删除目录 345
9.4 拷贝、删除、移动及改名文件 345
9.4.1 拷贝一个文件 346
9.4.2 删除一个文件 346
9.4.3 移动一个文件 346
9.4.3.1 MoveFile和MoveFileEx的差别 347
9.4.4 改名文件 348
9.5 创建、打开和关闭文件 349
9.6 同步读写文件 353
9.6.1 定位文件指针 354
9.6.2 设置文件尾 355
9.6.3 强制缓冲的数据写入磁盘 356
9.6.4 锁定及解锁文件的某区域 356
9.7 异步读写文件 358
9.7.1 同时执行多个异步文件I/O操作 363
9.7.2 告警异步文件I/O 364
9.7.3 告警I/O示例应用程序 366
9.8 操纵文件属性 377
9.8.1 文件标志 377
9.8.3 文件时间戳 378
9.8.2 文件大小 378
9.9 搜寻文件 381
9.9.1 目录漫游示例应用程序 384
9.10 文件系统变化通知 392
9.10.1 文件变化示例应用程序 393
第十章 结构化异常处理 407
10.1 终止处理程序 408
10.1.1 SEH终止示例应用程序 419
10.2 异常过滤程序和异常处理程序 427
10.2.1 EXCEPTION_EXECUTE_HANDLER 429
10.2.2 EXCEPTION_CONTINUE_EXECUTION 430
10.2.2.1 谨慎使用EXCEPTION_CONTINUE_EXECUTION 431
10.2.3 EXCEPTION_CONTINUE_SEARCH 432
10.2.4 全局展开 433
10.2.5 关于异常过滤程序的进一步讨论 437
10.2.6 SEH异常情况应用程序示例 444
10.3 软件异常情况 454
10.3.1 在C++构造函数中的软件异常情况 456
10.3.2 SEH软件异常情况应用程序示例 456
10.3.3 停止全局展开 467
10.3.4 未处理的异常情况 468
10.3.5 没有调试器附属时的未处理异常情况 468
10.3.6 不显示异常情况消息框 470
10.3.7 自己调用UnhandledExceptionFilter 472
10.3.8 未处理的核心态异常情况 472
第十一章 UNICODE 474
11.1 字符集 474
11.1.1 单字节与双字节字符集 474
11.1.2 Unicode:宽字节字符集 475
11.2 为什么你要使用Unicode 476
11.3 如何编写Unicode源代码 476
11.3.1 C运行时库中对Unicode的支持 477
11.3.2 Win32定义的Unicode数据类型 481
11.3.3 Win32中的Unicode和ANSI函数 482
11.4 把你的应用程序转换为能够识别ANSI和UNICODE 484
11.4.1 Win32中的字符串函数 484
11.4.2 资源 486
11.4.3 在Unicode和ANSI间转换字符串 487
11.4.4 窗口类和过程 490
附录A 消息拆析器 492
A.1 消息拆析器 493
A.2 子控制宏 496
A.3 API宏 497
- 《钒产业技术及应用》高峰,彭清静,华骏主编 2019
- 《现代水泥技术发展与应用论文集》天津水泥工业设计研究院有限公司编 2019
- 《异质性条件下技术创新最优市场结构研究 以中国高技术产业为例》千慧雄 2019
- 《Prometheus技术秘笈》百里燊 2019
- 《中央财政支持提升专业服务产业发展能力项目水利工程专业课程建设成果 设施农业工程技术》赵英编 2018
- 《药剂学实验操作技术》刘芳,高森主编 2019
- 《林下养蜂技术》罗文华,黄勇,刘佳霖主编 2017
- 《脱硝运行技术1000问》朱国宇编 2019
- 《催化剂制备过程技术》韩勇责任编辑;(中国)张继光 2019
- 《信息系统安全技术管理策略 信息安全经济学视角》赵柳榕著 2020
- 《大学计算机实验指导及习题解答》曹成志,宋长龙 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《大学生心理健康与人生发展》王琳责任编辑;(中国)肖宇 2019
- 《大学英语四级考试全真试题 标准模拟 四级》汪开虎主编 2012
- 《大学英语教学的跨文化交际视角研究与创新发展》许丽云,刘枫,尚利明著 2020
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《复旦大学新闻学院教授学术丛书 新闻实务随想录》刘海贵 2019
- 《大学英语综合教程 1》王佃春,骆敏主编 2015
- 《大学物理简明教程 下 第2版》施卫主编 2020
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019