图书介绍
Windows核心编程PDF|Epub|txt|kindle电子书版本网盘下载
![Windows核心编程](https://www.shukui.net/cover/6/32281013.jpg)
- (美)理查德(Richter,J.)著 著
- 出版社: 北京:机械工业出版社
- ISBN:7111237919
- 出版时间:2008
- 标注页数:728页
- 文件大小:172MB
- 文件页数:746页
- 主题词:
PDF下载
下载说明
Windows核心编程PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1章 错误处理1
自定义错误处理的实现4
错误显示例程5
第2章Unicode11
字符集11
单字节和双字节字符集11
Unicode:宽字节字符集12
为何需要Unicode13
Windows 2000和Unicode13
Windows 98和Unicode13
Windows CE和Unicode14
评论14
关于COM15
如何编写Unicode源代码15
C运行库的Unicode支持15
Windows定义的Unicode数据类型17
Windows系统中的Unicode函数和ANSI函数17
Windows字符串函数19
让应用程序符合ANSI和Unicode规范19
Windows字符串函数20
资源22
确定文本是ANSI型还是Unicode型22
在Unicode和ANSI间转换字符串24
第3章 内核对象27
内核对象的概念27
使用计数27
安全性28
内核对象句柄表30
创建内核对象30
关闭内核对象32
进程间内核对象的共享32
对象句柄的继承性33
改变句柄标志35
命名对象36
终端服务器命名空间40
复制对象句柄40
第4章 进程45
编写第一个Windows应用程序46
进程的实例句柄49
进程的前一个实例句柄50
进程的命令行51
进程的环境变量52
亲缘性55
进程的错误模式55
当前驱动器和目录55
当前目录56
系统版本57
CreateProcess函数60
pszApplicationName和pszCommandLine60
psaProcess、 psaThread和 bInheritHandles62
fdwCreate64
pvEnvironment65
pszCurDir66
psiStartInfo66
ppiProcInfo69
进程的终止70
主线程的入口函数返回71
ExitProcess函数71
TerminateProcess函数72
进程中所有线程的运行终止73
进程的运行终止73
子进程74
枚举系统中运行的进程76
第5章 作业94
对作业进程的限制96
把进程放入作业102
终止作业中所有进程的运行103
查询作业统计信息103
作业通知信息106
JobLab示例应用程序108
第6章 线程的基本知识126
创建线程的时机126
何时不能创建线程127
编写第一个线程函数128
CreateThread函数129
psa130
cbStack130
pfnStartAddr和pvParam130
fdwCreate131
pdwThreadID132
终止线程132
线程函数返回132
ExitThread函数133
TerminateThread函数133
在进程终止运行时终止线程134
线程终止运行时发生的操作134
线程的一些内部细节134
对于C/C++运行时库的考虑137
Oops——错误地调用了CreateThread144
不该调用的C/C++运行时库函数145
线程的身份标识145
第7章 线程的调度、优先级和亲缘性149
挂起和恢复线程的运行150
进程的挂起和唤醒151
睡眠152
线程切换153
线程的运行时间153
上下文环境切换156
线程优先级160
优先级的抽象说明161
编程优先级164
动态提高线程的优先级等级166
为前台进程调整调度程序167
SchedulingLab示例应用程序168
亲缘性176
第8章 用户模式下的线程同步181
原子访问:互锁函数族181
高速缓存行186
高级线程同步188
临界区190
临界区准确的描述192
临界区与循环锁195
临界区与错误处理195
有用的提示和技巧196
第9章 线程与内核对象的同步200
等待函数201
成功等待的副作用204
事件内核对象205
等待定时器内核对象215
用等待定时器给APC项排队218
定时器的松散特性220
信号量内核对象220
互斥内核对象222
释放问题223
互斥对象与临界区的比较224
Queue应用程序示例225
线程同步对象表234
其他线程同步函数235
异步设备I/O 235
waitForInputIdle 235
MsgWaitForMultipleObjects(Ex)236
WaitForDebugEvent236
SignalobjectAndWait237
第10章 线程同步工具包239
临界区的实现:Optex 239
创建线程安全的数据类型和反信号量251
单写入多读出程序的保护263
WaitForMultipleExpressions函数 的实现272
第11章 线程池288
场景1:异步调用函数289
场景2:按规定的时间间隔调用函数291
场景3:在某个内核对象变为已通知状态时调用函数297
场景4:异步I/O请求运行完成时调用函数299
第12章 纤程301
使用纤程301
Counter示例应用程序303
第13章Windows内存结构313
进程的虚拟地址空间313
虚拟地址空间分区313
无效断点分配分区(适于Windows 2000和Windows 98)314
MS-DOS/16位Windows应用程序兼容分区(仅适于Windows 98) 315
用户模式分区(适用Windows 2000和Windows 98)315
64KB禁止进入分区(仅适用于Windows 2000)316
共享的MMF分区(仅适用于Windows 98)317
内核模式分区(使用于Windows 2000和Windows 98)317
地址空间区域317
在地址空间区域中提交物理存储器318
物理存储器和页面文件319
保护属性321
Copy-On-write访问322
特殊访问保护属性标志323
综合使用所有元素323
区域的内部详情326
Windows 98上地址空间的差异330
数据对齐的重要性333
第14章 虚拟内存338
系统信息338
虚拟内存的状态346
确定地址空间状态352
VMQery函数353
虚拟内存表应用程序示例360
第15章 应用程序中虚拟内存的使用371
地址空间中保留区域371
在保留区域中提交存储器373
同时进行保留区域并提交内存373
何时提交物理存储器374
物理存储器的回收和地址空间区域的释放375
何时回收物理存储器376
虚拟内存分配示例应用程序377
改变保护属性386
清除物理存储器内容387
地址窗口扩展(仅使用于Windows 2000)390
第16章 线程栈404
Windows 98下的线程栈406
C/C++运行时库中的栈检测函数408
Summation示例应用程序409
第17章 内存映射文件416
内存映射的可执行文件和DLL文件416
可执行文件或DLL的多个实例之间无法共享的静态数据417
在可执行文件或DLL的多个实例之间共享静态数据419
AppInst示例应用程序424
内存映射数据文件429
方法1:一个文件,一个缓存429
方法2:两个文件,一个缓存429
方法3:一个文件,两个缓存430
方法4:一个文件,零个缓存430
使用内存映射文件430
步骤1:创建或打开文件内核对象431
步骤2:创建文件映射内核对象432
步骤3:将文件数据映射到进程地址空间434
步骤4:进程地址空间中撤销文件数据的映像437
步骤5和步骤6:关闭文件映射对象和文件对象438
文件倒序示例应用程序439
使用内存映射文件处理大文件447
内存映射文件的一致性448
设定内存映射文件的基地址449
实现内存映射文件的具体细节450
使用内存映射文件在进程之间实现数据共享452
受页面文件支持的内存映射文件452
稀疏提交的内存映射文件459
第18章堆473
进程的默认堆473
创建辅助堆的原因474
保护组件474
更有效地管理内存475
进行本地访问475
减少线程同步开销475
快速释放475
创建辅助堆的方法476
分配堆中的内存块477
改变内存块的大小478
获取内存块的大小479
释放内存块479
销毁堆479
用C++程序使用堆479
其他堆函数482
第19章DLL基础485
DLL与进程的地址空间486
DLL的总体运行情况487
创建DLL模块490
导出的真正含义492
使用非Visual C++工具创建DLL 493
创建可执行模块494
运行可执行模块497
第20章DLL高级技术499
显式加载DLL模块和符号链接499
显式加载DLL模块499
显式卸载DLL模块501
显式链接到导出符号503
DLL的入口函数504
DLL-PROCESS-ATTACH通知505
DLL-PROCESS-DETACH通知506
DLL-THREAD-ATTACH通知508
DLL-THREAD-DETACH通知509
顺序调用DllMain 509
D11Main和C/C++运行时库512
延迟加载DLL513
函数转发器523
已知的DLL523
DLL重定向525
模块的基址重置525
绑定模块531
第21章 线程本地存储533
动态TLS533
静态TLS537
第22章DLL注入以及API挂接539
DLL注入:一个例子539
使用注册表注入DLL541
使用Windows钩子注入DLL542
使用远程线程注入DLL555
Inject Library示例应用程序559
Image Walk DLL567
使用特洛伊DLL注入DLL 570
将DLL作为调试程序注入570
在Windows 98平台上使用内存映射文件注入代码570
使用CreateProcess来注入代码571
API挂接:一个例子571
通过覆写代码实现API挂接572
通过操作模块的导入部分来实现API挂接573
LastMsgBoxInfo示例应用程序576
第23章 终止处理例程593
Funcensteinl594
Funcenstein2595
Funcenstein3596
Funcfurterl597
小测验:FuncaDoodleDoo598
Funcenstein4599
Funcaramal600
Funcarama2600
Funcarama3601
Funcarama4:最终的边界602
有关finally块的说明603
Funcfurter2604
SEH终止示例应用程序605
第24章 异常处理程序和软件异常608
通过例子理解异常过滤器和异常处理程序608
Funcmeisterl608
Funcmeister2609
EXCEPTION-EXECUTE-HANDLER611
一些有用的例子611
全局展开614
暂停全局展开616
EXCEPTION-CONTINUE-EXECUTION617
EXCEPTION-CONTINUE SEARCH619
GetExceptionCode621
与内存相关的异常621
与异常相关的异常622
与调试相关的异常622
与整数相关的异常622
与浮点数相关的异常622
GetExceptionInformation624
软件异常628
第25章 未处理异常和C++异常631
即时调试633
关闭异常消息框634
强制进程终止运行634
包装一个线程函数634
包装所有的线程函数635
自动调用调试器635
自己调用UnhandledExceptionFilter636
UnhandledExceptionFilter函数的 内部细节636
异常和调试程序638
C++异常与结构化异常比较652
第26章 窗口消息657
线程的消息队列657
将消息投送到一个线程的消息队列中658
向窗口发送消息660
唤醒一个线程664
队列状态标志665
从线程队列中提取消息的算法666
使用内核对象或者队列状态标志来唤醒一个线程669
使用消息发送数据671
Windows处理ANSI/Unicode字符和字符串的方法678
第27章 硬件输入模型与本地输入状态681
原始输入线程681
本地输入状态682
键盘输入和焦点683
鼠标光标管理686
将虚拟输入队列和本地输入状态相关联687
LISLab示例应用程序689
LISWatch示例应用程序704
附录A构建环境713
附录B消息解析器、子控件宏以及API宏725