《Windows NT开发指南》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:(美)K. 古德曼著;赵立伟等译
  • 出 版 社:北京:科学出版社;龙门书局
  • 出版年份:1997
  • ISBN:7030053508
  • 页数:303 页
图书介绍:

引言 1

第一章 进程的生命周期 15

1.1 仔细研究Create Process 15

1.1.1 子进程能继承些什么 16

1.1.2 什么不能被继承 17

1.1.3 决定俦类和进程类型的创建标志 18

1.2 线程 20

1.2.1 何时使用附加线程 20

1.2.2 创建线程 22

1.2.3 挂起线程的执行 23

1.2.4 设置线程俦级 24

1.2.5 使用线程局部存储区 25

1.2.6 终止线程 27

1.2.7 什么时候不使用线程 27

1.3 覆盖的I/O 27

1.4 结构和Create Process API 28

1.4.1 环境变量 28

1.4.2 PROCESS_INFORMATION结构 29

1.4.3 终止GUI进程 29

1.5 同步 30

1.5.1 Win 16与 Win32 的差别 30

1.5.2 同步对象 30

1.5.3 临界区对象 31

1.5.4 事件对象 32

1.5.5 互斥对象 33

1.5.6 信号量对象 33

1.5.7 同步和GDI对象 42

第二章 32位程序设计 44

2.1 32位计算的优点 44

2.1.1 线性程序设计模式 44

2.1.2 可以得到的更多的数据和地址空间 45

2.1.3 并非必要的结构复杂的编译器支持 46

2.1.4 适用于32位位模式的处理器 47

2.2 了解目标平台 48

2.2.1 扩展基本类型 50

2.2.2 Intel 386/486 寄存器集 51

2.2.3 弄清参数调用 53

2.2.4 MIPS R4000 和R4400处理器 56

2.2.5 DEC ALpha AXP 62

2.3 小结 62

第三章 关于应用程序移植到WIN32 API中的问题 62

3.1 两个程序库:Win16 的库和Win32的库 65

3.1.1 处理makefile 问题 66

3.1.2 数据类型长度的改变 67

3.1.3 Windows消息的变动 70

3.1.4 API 调用的改变 72

3.1.6 直接访问硬件 73

3.1.5 段式存储体系问题 73

3.1.7 直接访问WIN.INI 与SYSTEM.INI 74

3.1.8 虚拟设备驱动程序(VxD) 75

3.1.9 对hprevInstance的依赖性 75

3.1.10 输入状态的变动 75

3.1.11 对DOS 的依赖 75

3.1.12 移植汇编语言 78

3.2 一个代码库:与Win16和Win32兼容 79

3.2.1 C语言途径 79

3.2.2 GET 移植宏 83

3.2.3 移植用于控制的宏 83

3.2.4 轻松的途径:使用应用程序框架 84

3.2.5 有关MFC 的一些注意事项 89

参加一个移植实验室 92

第四章 高级GDI 功能 94

4.1 GDI的“客户/服务器”简介 94

4.1.1 GDI API 的一些功能变动 95

4.1.2 被删除的GDI功能 96

4.2 对GDI 的改进 97

4.2.1 对直线的改进 97

4.2.2 对曲线的改进 97

4.2.3 对弧线的改进 99

4.2.4 对路径的改进 102

4.2.5 对位图的改进 107

4.2.6 增强的元文件 112

4.3 改进GDI 作图效果 115

4.4 为Win32 应用程序增加三维效果 117

4.5 小结 119

第五章 Windows NT 的安全体系 120

5.1 单个用户验证 121

5.2 安全标识符 121

5.3 存取令牌 122

5.4 安全对象 123

5.5 控制存取权限 124

5.6 应用程序示例:Secure View 128

5.7 授予特权 143

5.8 应用程序示例:Exit Windows 144

5.9 安全体系对应用程序的影响 151

5.9.1 独立工作站 151

5.9.2 单域和多域网络 152

5.10 模仿 152

5.11 安全性和屏幕保护程序 153

5.11.1 NT 安全体系 154

第六章 注册区 155

6.1 为什么在NT中注册是必要的 155

6.2 注册区的基本结构 157

6.2.1 关键字和值入口 157

6.2.2 预定义句柄 158

6.3 确保 Windows NT能启动的控制集 161

6.4 INI 文件映射 162

6.5 设置环境变量 164

6.6 如何结构化应用程序数据 165

6.7 注册区编程 166

6.7.1 查询注册区 168

6.7.2 枚举关键字和值 170

6.7.3 写到注册区 171

6.7.4 安全注册区入口 171

6.7.5 保存和从磁盘文件中恢复注册区 171

6.7.6 连接到远程机器上 172

6.7.7 卸下SDK 173

6.7.8 性能数据 174

6.7.9 获取计数数据 178

6.8 示例程序:Registrar 179

6.9 小结 187

从注册区中抽取的典型项目 187

第七章 远程过程调用 190

7.1 什么是远程过程调用 190

7.1.1 NT RPC 与OSF/ DCE 191

7.1.2 RPC 和数据转换 191

7.2 开发RPC 应用程序 192

7.2.1 利用Microsoft 接口定义语言定义接口 192

7.2.2 GUID 结构 193

7.2.3 使用类型属性自定义类型 195

7.2.4 RPC 客户 197

7.2.5 客户API 联编函数 199

7.2.6 RPC 服务器 202

7.2.7 本地远程过程调用 205

7.3 示例程序:分布式MAKE 205

7.4 小结 207

命令习惯 207

第八章 Win32s 209

8.1 Win32s 是如何工作的 210

8.1.1 Win32s .EXE :建立一个任务数据库 211

8.1.2 16位与32位模块间的转换程序 211

8.1.3 组成Win32s 系统的文件 211

8.1.4 可移植可执行文件格式 212

8.2.1 用Win16代替Win32s 214

8.2 确定在什么情况下Win32s 适合应用程序 214

8.2.2 使用Win32 代替Win32s 215

8.3 通用转换程序 215

8.3.1 注册转换程序 215

8.3.2 注消转换程序 217

8.3.3 转换指针 217

8.3.4 示例程序:Exit Windows 32s 218

8.3.5 开发Win16程序 228

8.3.6 从Windows 3.x应用程序中调用Win32s DLL 229

8.3.7 与Win16应用程序并存 229

8.3.8 Notify Register 与Win32 230

8.4 调试 Win32 s应用程序 231

8.3.9 Notify Register for Win32的一个选择 231

8.5 小结 235

第九章 内存管理 236

9.1 Windows NT 如何管理虚拟内存 236

9.2 内存API 238

9.2.1 虚拟API 238

9.2.2 Virtual Free 239

9.2.3 监视页 240

9.2.4 零碎内存解决方法 241

9.2.5 Virtual Query 241

9.2.6 VirtualLock 242

9.3 Win32 中的Global 和LocalAlloc函数 242

9.4 用标准C语言库管理内存 243

9.5 在Win32的下新堆API 244

9.5.1 用于分配更大内存的HeapRealloc 245

9.5.2 撤消堆的HeapDestroy 246

9.5.3 MFCC++new 及delete 函数 246

结构异常处理 246

9.6 管理内存交叉进程 247

9.6.1 使用内存映射文件进行交叉进程操作 248

9.6.2 访问共享数据的其它进程 250

9.6.3 共享内存DLLs 251

9.6.4 传送只读数据的WM_COPYDATA 252

9.6.5 ReadProcessMemory 和WriteProcessMemory 253

9.7 应用程序示例:读写内存 254

9.8 小结 269

第十章 编写控制台应用程序 271

10.1 控制台应用程序中不支持的功能 273

10.1.1 控制台应用程序中的钩子 273

10.1.2 定时器和控制台应用程序 273

10.1.3 控制台与其它窗口的相互作用 274

10.1.4 分类和控制台应用程序 274

10.2 控制台应用程序的特笥 274

10.2.1 控制台句柄 275

10.3 C运行库对控制台输入和输出的支持 278

10.3.1 GetLastError 与errno 279

10.3.2 Greate Thread 和_beginthread 281

10.4 在控制台应用程序中使用图形用户界面(GUI)功能 282

10.5 与图形应用程序相结合的控制台窗口 284

10.5.1 向控制台窗口的直接输出 284

10.5.2 取得控制台输入 286

10.5.3 重新定向标准输入/输出 287

10.6 检测事件 293

10.7 使用定时器 295

10.8 独立进程 296

10.9 从控制台应用程序打印 297

10.9.1 运行时确定控制台应用程序 301

10.10 小结 303