Windows核心编程--目录.pdf
《Windows核心编程--目录.pdf》由会员分享,可在线阅读,更多相关《Windows核心编程--目录.pdf(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、目 录 译者序 前言 第一部分 程序员必读 第 1 章 对程序错误的处理 1 1.1 定义自己的错误代码 4 1.2 ErrorShow 示例应用程序 5 第 2 章 Unicode 11 2.1 字符集 11 2.1.1 单字节与双字节字符集 11 2.1.2 Unicode:宽字节字符集 12 2.2 为什么使用 Unicode 13 2.3 Windows 2000 与 Unicode 13 2.4 Windows 98 与 Unicode 13 2.5 Windows CE 与 Unicode 14 2.6 需要注意的问题 14 2.7 对 COM 的简单说明 14 2.8 如何编写
2、Unicode 源代码 15 2.8.1 C 运行期库对 Unicode 的支持 15 2.8.2 Windows 定义的 Unicode 数据类型 17 2.8.3 Windows 中的 Unicode 函数和 ANSI 函数 17 2.8.4 Windows 字符串函数 19 2.9 成为符合 ANSI 和 Unicode 的应用程序 19 2.9.1 Windows 字符串函数 19 2.9.2 资源 22 2.9.3 确定文本是 ANSI 文本还是 Unicode 文本 22 2.9.4 在 Unicode 与 ANSI 之间转换字符串 23 第 3 章 内核对象 27 3.1 什么是
3、内核对象 27 3.1.1 内核对象的使用计数 27 3.1.2 安全性 28 3.2 进程的内核对象句柄表 30 3.2.1 创建内核对象 30 3.2.2 关闭内核对象 32 3.3 跨越进程边界共享内核对象 32 3.3.1 对象句柄的继承性 32 3.3.2 改变句柄的标志 35 3.3.3 命名对象 36 3.3.4 终端服务器的名字空间 39 3.3.5 复制对象句柄 39 第二部分 编程的具体方法 第 4 章 进程 45 4.1 编写第一个 Windows 应用程序 46 4.1.1 进程的实例句柄 49 4.1.2 进程的前一个实例句柄 50 4.1.3 进程的命令行 50 4
4、.1.4 进程的环境变量 51 4.1.5 进程的亲缘性 54 4.1.6 进程的错误模式 54 4.1.7 进程的当前驱动器和目录 54 4.1.8 进程的当前目录 55 4.1.9 系统版本 56 4.2 CreateProcess 函数 58 4.2.1 pszApplicationName 和 pszCommandLine 59 4.2.2 psa Process、psa Thread 和 binherit Handles 60 4.2.3 fdwCreate 62 4.2.4 pvEnvironment 64 4.2.5 pszCurDir 64 4.2.6 psiStartInfo
5、 64 4.2.7 ppiProcInfo 67 4.3 终止进程的运行 69 4.3.1 主线程的进入点函数返回 69 4.3.2 ExitProcess 函数 69 4.3.3 TerminateProcess 函数 70 4.3.4 进程终止运行时出现的情况 71 4.4 子进程 72 4.5 枚举系统中运行的进程 73 第 5 章 作业 91 5.1 对作业进程的限制 93 5.2 将进程放入作业 99 5.3 终止作业中所有进程的运行 99 5.4 查询作业统计信息 100 5.5 作业通知信息 103 5.6 JobLab 示例应用程序 104 第 6 章 线程的基础知识 121
6、6.1 何时创建线程 121 6.2 何时不能创建线程 122 6.3 编写第一个线程函数 123 6.4 CreateThread 函数 124 6.4.1 psa 124 6.4.2 cbStack 124 6.4.3 pfnStartAddr 和 pvParam 125 6.4.4 fdwCreate 126 6.4.5 pdwThreadID 126 6.5 终止线程的运行 127 6.5.1 线程函数返回 127 6.5.2 ExitThread 函数 127 6.5.3 TerminateThread 函数 127 6.5.4 在进程终止运行时撤消线程 128 6.5.5 线程终止
7、运行时发生的操作 128 6.6 线程的一些性质 129 6.7 C/C+运行期库的考虑 131 6.7.1 Oops错误地调用了 Create Thread 138 6.7.2 不应该调用的 C/C+运行期库函数 138 6.8 对自己的 ID 概念应该有所了解 139 第 7 章 线程的调度、优先级和亲缘性 142 7.1 暂停和恢复线程的运行 143 7.2 暂停和恢复进程的运行 144 7.3 睡眠方式 145 7.4 转换到另一个线程 145 7.5 线程的运行时间 146 7.6 运用环境结构 148 7.7 线程的优先级 152 7.8 对优先级的抽象说明 153 7.9 程序的
8、优先级 156 7.9.1 动态提高线程的优先级等级 158 7.9.2 为前台进程调整调度程序 159 7.9.3 Scheduling Lab 示例应用程序 160 7.10 亲缘性 167 第 8 章 用户方式中线程的同步 172 8.1 原子访问:互锁的函数家族 172 8.2 高速缓存行 177 8.3 高级线程同步 178 8.4 关键代码段 180 8.4.1 关键代码段准确的描述 182 8.4.2 关键代码段与循环锁 185 8.4.3 关键代码段与错误处理 185 8.4.4 非常有用的提示和技巧 186 第 9 章 线程与内核对象的同步 190 9.1 等待函数 191
9、9.2 成功等待的副作用 194 9.3 事件内核对象 195 9.4 等待定时器内核对象 204 9.4.1 让等待定时器给 APC 项排队 207 9.4.2 定时器的松散特性 209 9.5 信标内核对象 210 9.6 互斥对象内核对象 211 9.6.1 释放问题 213 9.6.2 互斥对象与关键代码段的比较 214 9.6.3 Queue 示例应用程序 214 9.7 线程同步对象速查表 223 9.8 其他的线程同步函数 224 9.8.1 异步设备 I/O 224 9.8.2 WaitForInputIdle 224 9.8.3 MsgWaitForMultipleObjec
10、ts(Ex)225 9.8.4 WaitForDebugEvent 225 9.8.5 SingleObjectAndWait 226 第 10 章 线程同步工具包 228 10.1 实现关键代码段:Optex 228 10.2 创建线程安全的数据类型和反信标 239 10.3 单个写入程序/多个阅读程序的保护 251 10.4 实现一个 WaitForMultipleExpressions 函数 259 第 11 章 线程池的使用 274 11.1 方案 1:异步调用函数 275 11.2 方案 2:按规定的时间间隔调用函数 277 11.3 方案 3:当单个内核对象变为已通知状态时调用函数
11、 283 11.4 方案 4:当异步 I/O 请求完成运行时调用函数 285 第 12 章 纤程 287 12.1 纤程的操作 287 12.2 Counter 示例应用程序 289 第三部分 内 存 管 理 第 13 章 Windows 的内存结构 299 13.1 进程的虚拟地址空间 299 13.2 虚拟地址空间如何分区 300 13.2.1 NuLL 指针分配的分区适用于 Windows 2000 和 Windows 98 300 13.2.2 MS-DOS/16 位 Windows 应用程序兼容分区仅适用于 Windows 98 301 13.2.3 用户方式分区适用于 Window
12、s 2000 和 Windows 98 301 13.2.4 64 KB 禁止进入的分区仅适用于 Windows 2000 302 13.2.5 共享的 MMF 分区仅适用于 Windows 98 303 13.2.6 内核方式分区适用于 Windows 2000 和 Windows 98 303 13.3 地址空间中的区域 303 13.4 提交地址空间区域中的物理存储器 304 13.5 物理存储器与页文件 304 13.6 保护属性 307 13.6.1 Copy-On-Write 访问 308 13.6.2 特殊的访问保护属性的标志 309 13.7 综合使用所有的元素 309 13.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Windows 核心 编程 目录
限制150内