导航:首页 > 编程语言 > windows核心编程第4版

windows核心编程第4版

发布时间:2023-01-02 03:17:47

㈠ Windows 核心编程的目录

第1部分 必备知识
第1章 错误处理
1.1 定义自己的错误代码
1.2 ErrorShow示例程序
第2章 字符和字符串处理
2.1 字符编码
2.2 ANSI字符和Unicode字符与字符串数据类型
2.3 Windows中的Unicode函数和ANSI函数
2.4 C运行库中的Unicode函数和ANSI函数
2.5 C运行库中的安全字符串函数
2.5.1 初识新的安全字符串函数
2.5.2 在处理字符串时如何获得更多控制
2.5.3 Windows字符串函数
2.6 为何要用Unicode
2.7 推荐的字符和字符串处理方式
2.8 Unicode与ANSI字符串转换
2.8.1 导出ANSI和Unicode DLL函数
2.8.2 判断文本是ANSI还是Unicode
第3章 内核对象
3.1 何为内核对象
3.1.1 使用计数
3.1.2 内核对象的安全性
3.2 进程内核对象句柄表
3.2.1 创建一个内核对象
3.2.2 关闭内核对象
3.3 跨进程边界共享内核对象
3.3.1 使用对象句柄继承
3.3.2 改变句柄的标志
3.3.3 为对象命名
3.3.4 终端服务命名空间
3.3.5 专有命名空间
3.3.5 复制对象句柄
第Ⅱ部分 工作机制
第4章 进程
4.1 编写第一个Windows应用程序
4.1.1 进程实例句柄
4.1.2 进程前一个实例的句柄
4.1.3 进程的命令
4.1.4 进程的环境变量
4.1.5 进程的关联性
4.1.6 进程的错误模式
4.1.7 进程当前所在的驱动器和目录
4.1.8 进程的当前目录
4.1.9 系统版本
4.2 CreateProcess函数
4.2.1 pszApplicationName和pszCommandLine参数
4.2.2 psaProcess,psaThread和bInheritHandles参数
4.2.3 fdwCreate参数
4.2.4 pvEnvironment参数
4.2.5 pszCurDir参数
4.2.6 psiStartInfo参数
4.2.7 ppiProcInfo参数
4.3 终止进程
4.3.1 主线程的入口点函数返回
4.3.2 ExitProcess函数
4.3.3 TerminateProcess函数
4.3.4 当进程中的所有线程终止时
4.3.5 当进程终止运行时
4.4 子进程
4.5 管理员以标准用户权限运行时
4.5.1 自动提升进程的权限
4.5.2 手动提升进程的权限
4.5.3 何为当前权限上下文
4.5.4 枚举系统中正在运行的进程
4.5.5 Process Information示例程序
第5章 作业
5.1 对作业中的进程施加限制
5.2 将进程放入作业中
5.3 终止作业中的所有线程查询作业统计信息
5.4 作业通知
5.6 Job Lab示例程序
第6章 线程基础
6.1 何时创建线程
6.2 何时不应该创建线程
6.3 编写第一个线程函数
6.4 CreateThread函数
6.4.1 psa参数
6.4.2 cbStackSize参数
6.4.3 pfnStartAddr和pvParam参数
6.4.4 dwCreateFlags
6.4.5 pdwThreadID7
6.5 终止运行线程
6.5.1 线程函数返回
6.5.2 ExitThread函数
6.5.3 TerminateThread函数
6.5.4 进程终止运行时
6.5.5 线程终止运行时
6.6 线程内幕
6.7 C/C++运行库注意事项
6.7.1 用_beginthreadex而不要用CreateThread创建线程
6.7.2 绝对不应该调用的C/C++运行库函数
6.8 了解自己的身份
6.8.1 将伪句柄转换为真正的句柄
第7章 线程调度、优先级和关联性
7.1 线程的挂起和恢复
7.2 进程的挂起和恢复
7.3 睡眠
7.4 切换到另一个线程
7.5 在超线程CPU上切换到另一个线程
7.6 线程的执行时间
7.7 在实际上下文中谈CONTEXT结构
7.8 线程优先级
7.9 从抽象角度看优先级
7.10 优先级编程
7.10.1 动态提升线程优先级
7.10.2 为前台进程微调调度程序
7.10.3 调度I/O请求优先级
7.10.4 Scheling Lab 示例程序
7.11 关联性
第8章 用户模式下的线程同步
8.1 原子访问:Interlocked系列函数
8.2 高速缓存行
8.3 高级线程同步需要避免使用的一种方法
8.4 关键段
8.4.1 关键段:细节
8.4.2 关键段和旋转锁
8.4.3 关键段和错误处理
8.5 Slim读/写锁
8.6 条件变量
8.6.1 Queue示例程序
8.6.2 在停止线程时的死锁问题
8.6.3 一些有用的窍门和技巧
第9章 用内核对象进行线程同步
9.1 等待函数
9.2 等待成功所引起的副作用
9.3 事件内核对象
9.4 可等待的计时器内核对象
9.4.1 让可等待的计时器添加APC调用
9.4.2 计时器的剩余问题
9.5 信号量内核对象
9.6 互斥量内核对象
9.6.1 遗弃问题
9.6.2 互斥量与关键段的比较
9.6.3 Queue示例程序
9.7 线程同步对象速查表
9.8 其他的线程同步函数
9.8.1 异步设备I/O
9.8.2 WaitForInputIdle函数
9.8.3 MsgWaitForMultipleObjects(Ex)函数
9.8.4 WaitForDebugEvent函数
9.8.5 SignalObjectAndWait函数
9.8.6 使用等待链遍历API来检测死锁
第10章 同步设备I/O与异步设备I/O
10.1 打开和关闭设备细看CreateFile函数
10.2 使用文件设备
10.2.1 取得文件的大小
10.2.2 设置文件指针的位置
10.2.3 设置文件尾
10.3 执行同步设备I/O
10.3.1 将数据刷新至设备
10.3.2 同步I/O的取消
10.4 异步设备I/O基础
10.4.1 OVERLAPPED结构
10.4.2 异步设备I/O的注意事项
10.4.3 取消队列中的设备I/O请求
10.5 接收I/O请求完成通知
10.5.1 触发设备内核对象
10.5.2 触发事件内核对象
10.5.3 可提醒I/O
10.5.4 I/O完成端口
10.5.5 模拟已完成的I/O请求
第11章 Windows线程池
11.1 情形1:以异步方式调用函数
11.1.1 显式地控制工作项
11.1.2 Batch示例程序
11.2 情形2:每隔一段时间调用一个函数
11.3 情形3:在内核对象触发时调用一个函数
11.4 情形4:在异步I/O请求完成时调用一个函数
11.5 回调函数的终止操作
11.5.1 对线程池进行定制
11.5.2 得体地销毁线程池:清理组
第12章 纤程
第Ⅲ部分 内存管理
第13章 Windows内存体系结构
13.1 进程的虚拟地址空间
13.2 虚拟地址空间的分区
13.2.1 空指针赋值分区
13.2.2 用户模式分区
13.3 地址空间中的区域
13.4 给区域调拨物理存储器
13.5 物理存储器和页交换文件
13.6 页面保护属性
13.6.1 写时复制
13.6.2 一些特殊的访问保护属性标志
13.7 实例分析
13.8 数据对齐的重要性
第14章 探索虚拟内存
14.1 系统信息
14.2 虚拟内存状态
14.3 NUMA机器中的内存管理
14.4 确定地址空间的状态
14.4.1 VMQuery函数
14.4.2 示例程序:虚拟内存映射
第15章 在应用程序中使用虚拟内存
15.1 预订地址空间区域
15.2 给区域调拨物理存储器
15.3 同时预订和调拨物理存储器
15.4 何时调拨物理存储器
15.5 撤销调拨物理存储器及释放区
15.5.1 何时撤销调拨物理存储器
15.5.2 虚拟内存分配示例程序
15.6 改变保护属性
15.7 重置物理存储器的内容
15.8 地址窗口扩展
第16章 线程栈
16.1 C/C++运行库的栈检查函数
16.2 Summation示例程序
第17章 内存映射文件
17.1 映射到内存的可执行文件和DLL
17.1.1 同一个可执行文件或DLL的多个实例不会共享静态数据
17.1.2 在同一个可执行文件或DLL的多个实例间共享静态数据
17.1.3 Application Instances示例程序
17.2 映射到内存的数据文件
17.2.1 方法1:一个文件,一块缓存
17.2.2 方法2:两个文件,一块缓存
17.2.3 方法3:一个文件,两块缓存
17.2.4 方法4:一个文件,零个缓存
17.3 使用内存映射文件
17.3.1 第1步:创建或打开文件内核对象
17.3.2 第2步:创建文件映射内核对象
17.3.3 第3步:将文件的数据映射到进程的地址空间
17.3.4 第4步:从进程的地址空间撤销对文件数据的映射
17.3.5 第5步和第6步:关闭文件映射对象和文件对象
17.6 File Reverse示例程序
17.7 用内存映射文件来处理大文件
17.8 内存映射文件和一致性
17.9 给内存映射文件指定基地址
17.10 内存映射文件的实现细节
第18章 堆
18.1 进程的默认堆
18.2 为什么要创建额外的堆
18.2.1 对组件进行保护
18.2.2 更有效的内存管理
18.2.3 使内存访问局部化
18.2.4 避免线程同步的开销
18.2.5 快速释放
18.3 如何创建额外的堆
18.3.1 从堆中分配内存块
18.3.2 调整内存块的大小
18.3.3 获得内存块的大小
18.3.4 释放内存块
18.3.5 销毁堆
18.3.6 在C++中使用堆
18.4 其他堆函数
第Ⅳ部分 动态链接库
第19章 DLL基础
19.1 DLL和进程的地址空间
19.2 纵观全局
19.2.1 构建DLL模块
19.2.2 构建可执行模块
19.2.3 运行可执行模块
第20章 DLL高级技术
20.1 DLL模块的显式载入和符号链接
20.1.1 显式地载入DLL模块
20.1.2 显式地卸载DLL模块
20.1.3 显式地链接到导出符号
20.2 DLL的入口点函数
20.2.1 DLL_PROCESS_ATTACH通知
20.2.2 DLL_PROCESS_DETACH通知
20.2.3 DLL_THREAD_ATTACH通知
20.2.4 DLL_THREAD_DETACH通知
20.2.5 DllMain的序列化调用
20.2.6 DllMain和C/C++运行库
20.3 延迟载入DLL
20.4 函数转发器
20.5 已知的DLL
20.6 DLL重定向
20.7 模块的基地址重定位
20.8 模块的绑定
第21章 线程局部存储区
21.1 动态TLS
21.2 静态TLS0
第22章 DLL注入和API拦截
22.1 DLL注入的一个例子
22.2 使用注册表来注入DLL
22.3 使用Windows挂钩来注入DLL
22.4 使用远程线程来注入DLL
22.4.1 Inject Library示例程序
22.4.2 Image Walk DLL
22.5 使用木马DLL来注入DLL
22.6 把DLL作为调试器来注入
22.7 使用CreateProcess来注入代码
22.8 API拦截的一个例子9
22.8.1 通过覆盖代码来拦截API0
22.8.2 通过修改模块的导入段来拦截API
22.8.3 Last MessageBox Info示例程序
第Ⅴ部分 结构化异常处理
第23章 终止处理程序
第24章 异常处理程序与软件异常
24.1 通过实例理解异常过滤程序和异常处理程序
24.1.1 Funcmeister1函数
24.1.2 Funcmeister2函数
24.2 EXCEPTION_EXECUTE_HANDLER1
24.2.1 一些有用的例子
24.2.2 全局展开
24.2.3 停止全局展开
24.3 EXCEPTION_CONTINUE_EXECUTION
24.4 EXCEPTION_CONTINUE_SEARCH0
24.5 GetExceptionCode2
24.6 GetExceptionInformation6
24.7 软件异常
第25章 未处理异常、向量化异常处理与C++异常
25.1 UnhandledExceptionFilter函数详解
25.2 即时调试
25.3 电子表格示例程序
25.4 向量化异常和继续处理程序
25.5 C++异常与结构化异常的比较
25.6 异常与调试器
第26章 错误报告与应用程序恢复
26.1 Windows错误报告控制台
26.2 可编程的Windows错误报告
26.3 对进程中所有的问题报告进行定制
26.4 问题报告的创建与定制
26.4.1 创建一个自定义的问题报告
26.4.2 设置报告参数:WerReportSetParameter
26.4.3 将小型转储文件放入报告:WerReportAddDump8
26.4.4 将任意文件放入报告:WerReportAddFile9
26.4.5 修改对话框文本:WerReportSetUIOption0
26.4.6 提交错误报告:WerReportSubmit0
26.4.7 关闭问题报告:WerReportCloseHandle
26.4.8 Customized WER示例程序
26.5 应用程序的自动重启与恢复
26.5.1 应用程序的自动重启
26.5.2 对应用程序恢复的支持
第Ⅵ部分
附录A 构建环境
附录B 消息处理宏、子控件宏和API宏
索引

㈡ 怎么学习《windows核心编程》

不要一开始就学这一本书,这是给高手学的,
如果你刚学完数据结构就学这本书是没法看懂的,
我的建议是,先看<<windows程序设计>>这本书,现在好像已经出到第五版了。
刚开始学的时候不需要看懂全部,只需要看懂前面的消息机制(一定要看懂),
然后自己能照着书中的代码写出一个窗口就行了(不用记住代码,但至少你要能把代码输入好,并编译完成,程序运行正常,到这,这本书可以先放下,当然,后面的能呓懂最好能看下去,不能看懂,也要浏览一下,知道大概讲的什么,。

然后去下载 孙鑫的<<VC++从入门到精通>>的视频,看完后再回头看<<windows程序设计>>
看破完后你就可以看<<windows核心编程>>了

当然,就要很久的时间,我就用了差不多一年

㈢ windows核心编程 哪个版比较好

要在windows平台发展,首先要对标准C++有深入了解。MFC等库中各种虚函数、框架等等都是建立在此基础上的,建议看看《C++ Primer》
要想看懂《windows核心编程》,首先要对VC++有一定的了解,了解它的工作原理。建议看看《Windows程序设计(第五版)》,这本书虽然比较早,里面的一些知识可能已经淘汰,但这本书被称作Windows编程圣经,里面讲解的Windows程序原理至今依然适用。其次,还要对windows的操作系统本身有一定了解,建议看看操作系统原理。
linux和windows这2者之间有很大不同,从操作系统上就有很大差异,而且linux下更喜欢用C编程,windows的话就比较喜欢C++,看《windows核心编程》就可以看出来了。

㈣ windows 核心编程第四章中的一段代码,我不能正确编译,请帮我看看什么问题,急急急!!!!!

日文不懂,不过意思猜到是:错误: unresolved external symbol _main
原因是你的你的程序类型和入口函数不匹配,编译器根据类型在查找它认为的入口函数main,而你给出的是WinMain,他不认识。

解决方案:
1.试试看在[Project] --> [Settings] --> 选择"Link"属性页,在Project Options中将/subsystem:console改成/subsystem:windows
2.或者用向导建立一个windows程序,把你的代码粘过去覆盖原来的WinMain函数
3.或者把你的WinMain改成main试试看

㈤ Windows核心编程的编辑推荐

亮点:长销不衰的Windows编程经典
权威力作 再度新鲜亮相
名着名译 彰显经典魅力
深刻剖析底层实现机理
直击Windows编程精髓
Windows核心编程(第5版)针对Windows XP,Windows Vista和Windows Server 2008全面修订。主题广泛,内容丰富,讲解深入而精辟。透过这本Windows编程经典,我们可以在专家的悉心指导下,洞悉Windows编程精华,深入了解高级编程技巧,编写出高性能的Windows应用程序。
本书重要主题:
如何为32位和64位Windows系统构建和实现应用程序;
如何新建和处理进程与作业;
如何调度.管理、同步和销毁线程;
如何通过I/O完成端口执行同步和异步设备I/O操作;
如何使用虚拟内存、内存映射文件和堆之类的各种技术来分配内存;
如何处理默认调拨的线程栈物理存储;
如何为延迟加载、API拦截和进程注入构建DLL;
如何使用结构化异常处理、Windows错误恢复和应用程序重启等机制。
《微软技术丛书》包括以下几个子系列:
从入门到精通:适合新手程序员的实用教程;侧重于基础技术和特征;提供范例文件。
技术内幕:权威、必备的参考大全;包含丰富、实用的范例代码;帮助读者熟练掌握微软件技术。
高级编程:侧重于高级特性、技术和解决问题;包含丰富、适用性强的范例代码;帮助读者精通微软技术。
精通&宝典:着重剖析应用技巧,以帮助提高工作效率;主题包括办公应用和开发工具。
认证考试教材:完全根据考试要求来阐述每一个知识点;提供可供搜索的Ebook(英文版)和训练题;提供实际场景、案例分析和故障诊断实验。

㈥ 谁有《windows程序设计》《windows核心编程》这两本书的txt,本人表示不想买了,有的话

Windows程序设计第五版 pdf 格式的

http://vdisk.weibo.com/s/z7lCy1d7nlZLj
《Windows核心编程(第四版)》中文版PDF格式.rar
70.52 M
http://vdisk.weibo.com/s/d4M6y2rEtj9Ei
[MFC.Windows程序设计(第2版)修订版].(Programming.Windows.with.MFC,.2nd.Edition).(美)Jeff.Prosise.扫描版.pdf
http://vdisk.weibo.com/s/FlmEhSJrtUqW6

㈦ 《Windows核心编程(第5版)微软技术丛书》pdf下载在线阅读,求百度网盘云资源

《Windows核心编程》(Jeffrey Richter)电子书网盘下载免费在线阅读

链接:

密码:xdpk

书名:Windows核心编程

作者:Jeffrey Richter

豆瓣评分:9.2

出版社:人民邮电出版社

出版年份:2008-8

页数:820

内容简介:

【内容简介】

本书是Windows 程序设计领域的名着,涵盖了Windows 的最新版本Vista 以及Windows XP 的最新内容。书中全面深入地介绍了Windows 的各种基本要素,如进程、线程池、虚拟内存、DLL、设备I/O 和SEH 等,并列举了大量应用程序,精辟地分析了要素的使用方法。.

本书适于各层次Windows 编程人员阅读。 ...

【目录信息】

Acknowledgments . xxi

Introction xxiii

64-Bit Windows xxiii

What’s New in the Fifth Edition xxiv

Code Samples and System Requirements xxvi

Support for This Book xxvi

Questions and Comments xxvi

Part I Required Reading

1 Error Handling 3

Defining Your Own Error Codes 7

The ErrorShow Sample Application 7

2 Working with Characters and Strings 11

Character Encodings 12

ANSI and Unicode Character and String Data Types 13

Unicode and ANSI Functions in Windows 15

Unicode and ANSI Functions in the C Run-Time Library 17

Secure String Functions in the C Run-Time Library 18

Introcing the New Secure String Functions 19

How to Get More Control When Performing String Operations 22

<< 查看详细目录

作者简介:

Jeffrey Richter全球享有盛誉的微软技术专家,着名技术咨询和培训公司Wintellect创始人之一,MSDN Magazine杂志特邀编辑。多年来,他担任微软各开发团队顾问,参与了微软的许多关键产品包括各版本Windows、Visual Studio、Microsoft Offce和.NET框架的设计和编程。他撰写了一系列着作,包括本书和《深入理解.NET》(第2版·英文版,人民邮电出版社。2008),都堪称技术图书的典范,影响了一代Windows程序员,并因此荣获微软公司杜区最高技术荣誉“微软软件传奇人物”(Software Legend)称号。

㈧ Windows核心编程的目录

译者序
前言
作译者简介
第一部分 程序员必读
第1章 错误处理
1.1 自定义错误处理的实现
1.2 错误显示例程
第2章 Unicode
2.1字符集
2.1.1 单字节和双字节字符集
2.1.2 Unicode:宽字节字符集
2.2 为何需要Unicode
2.3 Windows 2000和Unicode
2.4 Windows 98和Unicode
2.5 Windows CE和Unicode
2.6 评论
2.7 关于COM
2.8 如何编写Unicode源代码
2.8.1 C运行库的Unicode支持
2.8.2 Windows定义的Unicode数据类型
2.8.3 Windows系统中的Unicode函数和ANSI函数
2.8.4 Windows字符串函数
2.9 让应用程序符合ANSI和Unicode规范
2.9.1 Windows字符串函数
2.9.2 资源
2.9.3 确定文本是ANSI型还是Unicode型
2.9.4 在Unicode和ANSI间转换字符串
第3章内核对象
3.1内核对象的概念
3.1.1 使用计数
3.1.2 安全性
3.2内核对象句柄表
3.2.1 创建内核对象
3.2.2 关闭内核对象
3.3 进程间内核对象的共享
3.3.1 对象句柄的继承性
3.3.2 改变句柄标志
3.3.3 命名对象
3.3.4终端服务器命名空间
3.3.5 复制对象句柄
第二部分 完成编程任务
第4章 进程
4.1 编写第一个Windows应用程序
4.1.1 进程的实例句柄
4.1.2 进程的前一个实例句柄
4.1.3 进程的命令行
4.1.4 进程的环境变量
4.1.5 亲缘性
4.1.6 进程的错误模式
4.1.7 当前驱动器和目录
4.1.8当前目录
4.1.9 系统版本
4.2 CreateProcess函数
4.2.1 pszApplicationName和pszCommandLine
4.2.2 psaProcess、psaThread和bInheritHandles
4.2.3 fdwCreate
4.2.4 pvEnvironment
4.2.5 pszCurDir
4.2.6 psiStartInfo
4.2.7 ppiProcInfo
4.3 进程的终止
4.3.1主线程的入口函数返回
4.3.2 ExitProcess函数
4.3.3 TerminateProcess函数
4.3.4 进程中所有线程的运行终止
4.3.5 进程的运行终止
4.4 子进程
4.5 枚举系统中运行的进程
第5章 作业
5.1 对作业进程的限制
5.2 把进程放入作业
5.3 终止作业中所有进程的运行
5.4 查询作业统计信息
5.5 作业通知信息
5.6 JobLab示例应用程序
第6章 线程的基本知识
6.1 创建线程的时机
6.2 何时不能创建线程
6.3 编写第一个线程函数
6.4 CreateThread函数
6.4.1 psa
6.4.2 cbStack
6.4.3 pfnStartAddr和pvParam
6.4.4 fdwCreate
6.4.5 pdwThreadID
6.5 终止线程
6.5.1 线程函数返回
6.5.2 ExitThread函数
6.5.3TerminateThread函数
6.5.4 在进程终止运行时终止线程
6.5.5 线程终止运行时发生的操作
6.6 线程的一些内部细节
6.7 对于C/C++运行时库的考虑
6.7.1 Oops—错误地调用了CreateThread
6.7.2 不该调用的C/C++运行时库函数
6.8 线程的身份标识
第7章 线程的调度、优先级和亲缘性
7.1 挂起和恢复线程的运行
7.2 进程的挂起和唤醒
7.3 睡眠
7.4 线程切换
7.5 线程的运行时间
7.6 上下文环境切换
7.7 线程优先级
7.8 优先级的抽象说明
7.9 编程优先级
7.9.1 动态提高线程的优先级等级
7.9.2 为前台进程调整调度程序
7.9.3 Scheling Lab示例应用程序
7.10 亲缘性
第8章 用户模式下的线程同步
8.1 原子访问:互锁函数族
8.2 高速缓存行
8.3 高级线程同步
8.4临界区
8.4.1临界区准确的描述
8.4.2临界区与循环锁
8.4.3临界区与错误处理
8.4.4 有用的提示和技巧
第9章 线程与内核对象的同步
9.1等待函数
9.2 成功等待的副作用
9.3 事件内核对象
9.4 等待定时器内核对象
9.4.1 用等待定时器给APC项排队
9.4.2定时器的松散特性
9.5信号量内核对象
9.6 互斥内核对象
9.6.1 释放问题
9.6.2互斥对象与临界区的比较
9.6.3 Queue应用程序示例
9.7线程同步对象表
9.8 其他线程同步函数
9.8.1 异步设备I/O
9.8.2WaitForInputIdle
9.8.3 MsgWaitForMultipleObjects(Ex)
9.8.4 WaitForDebugEvent
9.8.5SignalObjectAndWait
第10章线程同步工具包
10.1临界区的实现:Optex
10.2 创建线程安全的数据类型和反信号量
10.3 单写入多读出程序的保护
10.4 WaitForMultipleExpressions函数的实现
第11章线程池
11.1 场景1:异步调用函数
11.2 场景2:按规定的时间间隔调用函数
11.3 场景3:在某个内核对象变为已通知状态时调用函数
11.4 场景4:异步I/O请求运行完成时调用函数
第12章纤程
12.1 使用纤程
12.2 Counter示例应用程序
第三部分内存管理
第13章 Windows内存结构
13.1 进程的虚拟地址空间
13.2 虚拟地址空间分区
13.2.1 无效断点分配分区(适于Windows 2000和Windows 98)
13.2.2MS-DOS/16位Windows应用程序兼容分区(仅适于Windows 98)
13.2.3 用户模式分区(适用Windows 2000和Windows 98)
13.2.4 64KB禁止进入分区(仅适用于Windows 2000)
13.2.5 共享的MMF分区(仅适用于Windows 98)
13.2.6 内核模式分区(使用于Windows 2000和Windows 98)
13.3地址空间区域
13.4 在地址空间区域中提交物理存储器
13.5 物理存储器和页面文件
13.6 保护属性
13.6.1 Copy-On-Write访问
13.6.2 特殊访问保护属性标志
13.7 综合使用所有元素
13.7.1 区域的内部详情
13.7.2 Windows 98上地址空间的差异
13.8 数据对齐的重要性
第14章虚拟内存
14.1系统信息
14.2虚拟内存的状态
14.3 确定地址空间状态
14.3.1 VMQery函数
14.3.2虚拟内存表应用程序示例
第15章应用程序中虚拟内存的使用
15.1地址空间中保留区域
15.2 在保留区域中提交存储器
15.3 同时进行保留区域并提交内存
15.4 何时提交物理存储器
15.5 物理存储器的回收和地址空间区域的释放
15.5.1 何时回收物理存储器
15.5.2虚拟内存分配示例应用程序
15.6 改变保护属性
15.7 清除物理存储器内容
15.8 地址窗口扩展(仅使用于Windows 2000)
第16章 线程栈
16.1 Windows 98下的线程栈
16.2 C/C++运行时库中的栈检测函数
16.3 Summation示例应用程序
第17章内存映射文件
17.1 内存映射的可执行文件和DLL文件
17.1.1可执行文件或DLL的多个实例之间无法共享的静态数据
17.1.2 在可执行文件或DLL的多个实例之间共享静态数据
17.1.3 AppInst示例应用程序
17.2 内存映射数据文件
17.2.1 方法1:一个文件,一个缓存
17.2.2 方法2:两个文件,一个缓存
17.2.3 方法3:一个文件,两个缓存
17.2.4 方法4:一个文件,零个缓存
17.3 使用内存映射文件
17.3.1 步骤1:创建或打开文件内核对象
17.3.2 步骤2:创建文件映射内核对象
17.3.3 步骤3:将文件数据映射到进程地址空间
17.3.4 步骤4:进程地址空间中撤销文件数据的映像
17.3.5 步骤5和步骤6:关闭文件映射对象和文件对象
17.3.6 文件倒序示例应用程序
17.4 使用内存映射文件处理大文件
17.5内存映射文件的一致性
17.6 设定内存映射文件的基地址
17.7 实现内存映射文件的具体细节
17.8 使用内存映射文件在进程之间实现数据共享
17.9 受页面文件支持的内存映射文件
17.10 稀疏提交的内存映射文件
第18章 堆
18.1 进程的默认堆
18.2 创建辅助堆的原因
18.2.1 保护组件
18.2.2 更有效地管理内存
18.2.3 进行本地访问
18.2.4 减少线程同步开销
18.2.5 快速释放
18.3 创建辅助堆的方法
18.3.1 分配堆中的内存块
18.3.2 改变内存块的大小
18.3.3 获取内存块的大小
18.3.4 释放内存块
18.3.5 销毁堆
18.3.6 用C++程序使用堆
18.4 其他堆函数
第四部分动态链接库
第19章 DLL基础
19.1 DLL与进程的地址空间
19.2 DLL的总体运行情况
19.3 创建DLL模块
19.3.1 导出的真正含义
19.3.2 使用非Visual C++工具创建DLL
19.4 创建可执行模块
19.5 运行可执行模块
第20章 DLL高级技术
20.1 显式加载DLL模块和符号链接
20.1.1 显式加载DLL模块
20.1.2 显式卸载DLL模块
20.1.3 显式链接到导出符号
20.2 DLL的入口函数
20.2.1 DLL_PROCESS_ATTACH通知
20.2.2 DLL_PROCESS_DETACH通知
20.2.3 DLL_THREAD_ATTACH通知
20.2.4 DLL_THREAD_DETACH通知
20.2.5顺序调用DllMain
20.2.6 DllMain和C/C++运行时库
20.3延迟加载DLL
20.4 函数转发器
20.5 已知的DLL
20.6 DLL重定向
20.7 模块的基址重置
20.8 绑定模块
第21章 线程本地存储
21.1 动态TLS
21.2 静态TLS
第22章 DLL注入以及API挂接
22.1 DLL注入:一个例子
22.2 使用注册表注入DLL
22.3 使用Windows钩子注入DLL
22.4 使用远程线程注入DLL
22.4.1 Inject Library示例应用程序
22.4.2 Image Walk DLL
22.5 使用特洛伊DLL注入DLL
22.6 将DLL作为调试程序注入
22.7 在Windows 98平台上使用内存映射文件注入代码
22.8 使用CreateProcess来注入代码
22.9 API挂接:一个例子
22.9.1 通过覆写代码实现API挂接
22.9.2 通过操作模块的导入部分来实现API挂接
22.9.3 LastMsgBoxInfo示例应用程序
第五部分结构化异常处理
第23章 终止处理例程
23.1 Funcenstein1
23.2 Funcenstein2
23.3 Funcenstein3
23.4 Funcfurter1
23.5 小测验:FuncaDoodleDoo
23.6 Funcenstein4
23.7 Funcarama1
23.8 Funcarama2
23.9 Funcarama3
23.10 Funcarama4:最终的边界
23.11 有关finally块的说明
23.12 Funcfurter2
23.13 SEH终止示例应用程序
第24章 异常处理程序和软件异常
24.1 通过例子理解异常过滤器和异常处理程序
24.1.1 Funcmeister1
24.1.2 Funcmeister2
24.2 EXCEPTION_EXECUTE_HANDLER
24.2.1 一些有用的例子
24.2.2 全局展开
24.2.3 暂停全局展开
24.3 EXCEPTION_CONTINUE_EXECUTION
24.4 EXCEPTION_CONTINUE_SEARCH
24.5GetExceptionCode
24.5.1 与内存相关的异常
24.5.2 与异常相关的异常
24.5.3 与调试相关的异常
24.5.4 与整数相关的异常
24.5.5 与浮点数相关的异常
24.6 GetExceptionInformation
24.7软件异常
第25章 未处理异常和C++异常
25.1 即时调试
25.2 关闭异常消息框
25.2.1 强制进程终止运行
25.2.2 包装一个线程函数
25.2.3 包装所有的线程函数
25.2.4 自动调用调试器
25.3 自己调用UnhandledExceptionFilter
25.4 UnhandledExceptionFilter函数的内部细节
25.5 异常和调试程序
25.6 C++异常与结构化异常比较
第六部分 窗口
第26章 窗口消息
26.1 线程的消息队列
26.2 将消息投送到一个线程的消息队列中
26.3 向窗口发送消息
26.4 唤醒一个线程
26.4.1 队列状态标志
26.4.2 从线程队列中提取消息的算法
26.4.3 使用内核对象或者队列状态标志来唤醒一个线程
26.5 使用消息发送数据
26.6 Windows处理ANSI/Unicode字符和字符串的方法
第27章 硬件输入模型与本地输入状态
27.1 原始输入线程
27.2 本地输入状态
27.2.1 键盘输入和焦点
27.2.2 鼠标光标管理
27.3 将虚拟输入队列和本地输入状态相关联
27.3.1 LISLab示例应用程序
27.3.2 LISWatch示例应用程序
附录
附录A 构建环境
附录B 消息解析器、子控件宏以及API宏

㈨ 想学习windows内核编程,谁可以推荐几本书啊

Windows不开源,没有真正讲它内核的书。
我推荐你学习学习《Windows核心编程》和《深入解析Windows(第四版)》这两本书,真的很好,很经典,学完之后你会有一种如获至宝的感觉,写起内核代码会得心应手,强烈推荐!

㈩ 如何学好《windows核心编程》

很多人从MFC开始学习,结果常常是一头雾水,知难而退;也有人毅力坚强,熬过了MFC的阵痛期,最后却是知其然而不知其所以然,并且思维被限制在MFC的框架之中,遇到稍微有点规模的程序就无从下手了。x0dx0a以我个人的这些年的Windows开发经历,我建议Windows上的学习路线如下:x0dx0a首先当然是语言的学习,比如C或C++(STL),它是平台无关的x0dx0a然后可以从《Windows程序设计》(byx0dx0aCharlesPetzoldx0dx0a)入门,从最原始的WindowsAPI开始学习x0dx0a接下来可以学习《Windows核心编程》(byx0dx0aJeffreyRichterx0dx0a),它会让你比较深刻的理解Windows的前台和后台机制x0dx0a学完上面2本书,对Windows系统已经比较熟悉了,再要深入的话可以学下《Windows图形编程》(by袁锋)。x0dx0a至此,已经可以用API的方式开发大部分Windows应用程序了,x0dx0a接下来可以学一些常用库,比如MFC,WTL,ATL等,此时学习MFC和一开始就学习MFC已是截然不同的感觉,彼时痛苦难熬,此时会心一笑。x0dx0a其他就是根据项目需要,专业知识的学习,比如COM技术,网络,D3D等。

阅读全文

与windows核心编程第4版相关的资料

热点内容
dvd光盘存储汉子算法 浏览:757
苹果邮件无法连接服务器地址 浏览:962
phpffmpeg转码 浏览:671
长沙好玩的解压项目 浏览:142
专属学情分析报告是什么app 浏览:564
php工程部署 浏览:833
android全屏透明 浏览:736
阿里云服务器已开通怎么办 浏览:803
光遇为什么登录时服务器已满 浏览:302
PDF分析 浏览:484
h3c光纤全工半全工设置命令 浏览:143
公司法pdf下载 浏览:381
linuxmarkdown 浏览:350
华为手机怎么多选文件夹 浏览:683
如何取消命令方块指令 浏览:349
风翼app为什么进不去了 浏览:778
im4java压缩图片 浏览:362
数据查询网站源码 浏览:150
伊克塞尔文档怎么进行加密 浏览:892
app转账是什么 浏览:163