Windows 2000编程技术内幕

Windows 2000编程技术内幕 pdf epub mobi txt 电子书 下载 2026

出版者:机械工业出版社
作者:[美] 威廉姆斯
出品人:
页数:700
译者:
出版时间:1999-12
价格:88.00元
装帧:平装
isbn号码:9787111076322
丛书系列:
图书标签:
  • 操作系统
  • 解密与加密
  • 网络安全
  • 程序设计
  • Windows编程
  • C/C++
  • (图书馆)
  • Windows 2000
  • 编程
  • Windows API
  • 驱动程序
  • 系统编程
  • 内核
  • COM
  • DDK
  • 微软
  • 技术内幕
想要找书就要到 小美书屋
立刻按 ctrl+D收藏本页
你会得到大惊喜!!

具体描述

本书是Mickey Willia

作者简介

目录信息

目 录
译者序
前言
第一部分 Windows2000 核心技术
第1章 WindowsDNA概述
1.1Windows和WindowsNT的历史
1.2WindowsDNA剖析
1.3WindowsDNA的结构
1.3.1COM
1.3.2表示层
1.3.3防火墙层
1.3.4业务逻辑层
1.3.5数据层
1.4小结
第2章 虚拟内存和内存管理
2.1使用虚拟内存
2.2使用虚拟内存的时机
2.2.1保留一定的虚拟内存
2.2.2提交一个虚拟内存页面
2.2.3锁定虚拟内存页面
2.2.4释放虚拟内存页面
2.2.5为其他进程分配内存
2.3使用虚拟内存的例子
2.4Windows2000堆函数
2.4.1Windows2000下的堆管理
2.4.2在C++类中使用私有堆
2.5小结
第3章 线程和进程
3.1进程和线程
3.2管理进程
3.2.1使用CreateProcess函数
3.2.2结束进程
3.3管理线程
3.3.1创建线程
3.3.2结束线程
3.3.3取出并改变线程的优先级
3.3.4线程局部存储
3.3.5判断线程的标识符
3.3.6使用线程相似性
3.3.7使多个线程合作
3.3.8何时应创建线程
3.3.9何时不应创建线程
3.4同步
3.4.1使用Win32互锁操作
3.4.2临界区
3.4.3管理事件
3.4.4信号灯与互斥
3.5信号量
3.5.1信号量和等待函数
3.5.2信号量应用程序
3.5.3创建信号量
3.5.4返回信号量控制的资源
3.6在应用程序中使用信号量和临
界区
3.7使用作业对象
3.7.1控制作业对象属性
3.7.2作业对象实例
3.8小结
第4章 文件
4.1使用Windows2000文件系统
4.2执行通用文件操作
4.2.1收集卷信息
4.2.2文件系统标志
4.2.3例子
4.2.4打开、关闭和删除文件
4.2.5写文件
4.2.6读文件
4.3查找文件
4.3.1使用FindFirstFile、FindNextFile
和FindC1ose
4.3.2即将面世的FindFirstFileEx
4.3.3使用FILETIME结构
4.4执行其他文件操作
4.4.1使用CopyFile
4.4.2使用MoveFile
4.4.3使用SetFilePointer
4.4.4使用GetFileSize
4.5使用异步输入输出
4.5.1使用重叠的输入和输出
4.5.2使用文件完成例程
4.5.3使用文件完成例程的例子
4.6利用加密文件系统
4.7使用文件通知函数
4.8小结
第5章 结构化异常处理
5.1异常处理的基础知识
5.2SEH工作原理
5.3使用终止处理程序
5.3.1使用__leave来离开__try块
5.3.2使用正常和反常终止
5.4使用异常处理程序
5.4.1使用异常过滤器
5.4.2处理浮点异常
5.5C++异常处理
5.5.1使用异常来检测错误
5.5.2在错误产生后使用异常清除
5.5.3使用标准异常库
5.5.4使用运行异常
5.5.5使用逻辑异常
5.5.6检测构造时的错误
5.6把Win32SEH与C++异常处理集成
起来
5.7小结
第6章 动态链接库
6.1理解库
6.1.1静态链接库
6.1.2动态链接库
6.1.3使用DLL的好处
6.1.4使用DLL的不利之处
6.2创建和使用动态链接库
6.2.1DLL初始化
6.2.2导出和导入DLL函数和数据
6.2.3在装入期间装入DLL
6.2.4在运行时装入DLL
6.2.5DLL版本控制
6.2.6创建DLL共享内存
6.2.7简单的DLL实例
6.2.8使用C++和DLL
6.2.9使用MFC和DLL
6.3通用替换程序
6.3.1通用替换程序的结构
6.3.2通用替换程序函数
6.3.3通用替换程序实例
6.3.4通用替换程序的调试
6.4 小结
第7章 分布式安全性
7.1Windows2000安全性概述
7.2基本安全性数据结构
7.2.1进程和线程安全性令牌
7.2.2安全标识符
7.2.3ACE、DACL和SACL结构
7.2.4判断ACL所需的大小
7.2.5给DACL添加允许访问的ACE
7.2.6安全描述符
7.2.7获取安全描述符
7.2.8使用安全属性结构
7.3基于委托的访问控制
7.3.1TRUSTEE结构
7.3.2ACTRL_ACCESS_ENTRY
结构
7.3.3ACTRL_ACCESS_ENTRY_LIST
结构
7.3.4ACTRL_PROPERTY_ENTRY
结构
7.3.5ACTRL_ACCESS结构
7.4模仿客户程序
7.5小结
第8章 Wind0ws2000调试技术
8.1Windows调试策略
8.2使代码易于调试
8.2.1Windows2000的调试支持
8.2.2MFC调试支持
8.3Windows2000调试技术概述
8.3.1符号调试信息
8.3.2Microsoft调试工具
8.3.3第三方调试工具
8.4VisualC++集成的调试工具
8.4.1VisualC++调试工具的基本知识
8.4.2窗口中的内容
8.4.3VisualC++调试工具技巧
8.5Windows调试工具WINDBG
8.6使用Softlce调试程序
8.7使用Dr.WAtson
8.8使用BugTrapper
8.9第三方工具的来源
8.9.1CompuwareNuMegaLab
8.9.2MutekSolutions有限公司
8.9.3Rational
8.10小结
第9章 Wind0ws2000服务
9.1服务
9.1.1与Windows2000服务相交互
9.1.2Windows2000服务和系统安全
9.2编程实现Windows2000服务
9.2.1用服务状态更新服务控制管理器
9.2.2Windows2000服务的生存周期
9.2.3停止Windows2000服务
9.2.4往Windows2000事件日志中写
数据
9.3Windows2000服务的例子
9.4小结
第10章 控制Windows2000服务
10.1编写服务控制程序
10.1.1使用服务控制管理器注册服务
10.1.2取消注册服务
10.1.3自动重启出错的服务
10.2编写控制面板小程序
10.2.1控制面板小程序接口
10.2.2CtlFileSpy:FileSpy的控制面板
小程序
10.3小结
第二部分 用户交互/桌面
第11章 高级图形设备接口编程
11.1GDI基础
11.2设备描述表
11.2.1GDI映射模式
11.2.2GDI对象及其用法
11.3位图
11.3.1DDB与DIB
11.3.216色DIB
11.3.3256色DIB
11.4DIB例子
11.4.1CDIBitmap类
11.4.2CBmpPalette类
11.4.3CDibDoc类的修改
11.4.4主窗体类的修改
11.4.5CDibView类的修改
11.5路径
11.6元文件
11.7元文件的例子
11.7.1CMetaView类声明的修改
11.7.2CMetaView类析构函数的修改
11.7.3对CMetaView:OnInitialUpdate
的修改
11.7.4鼠标左击
11.7.5对CMetaView:OnDraw的修改
11.8小结
第12章 所有者作图和定制作图
12.1使用所有者作图控件
12.2实现所有者作图控件
12.2.1处理WM_DRAWITEM消息
12.2.2处理WMMEASUREITEM
消息
12.2.3处理WM_COMPAREITEM消息
12.2.4处理WM_DELETEITEM消息
12.3所有者作图实例:OWnDraw
12.3.1创建CListItem结构
12.3.2处理所有者作图消息
12.3.3向列表框中加入项目
12.3.4处理WM_MEASUREITEM消息
12.3.5处理WM_DRAWITEM消息
12.3.6处理WM_DELETEITEM消息
12.4使用定制作图
12.4.1定制作图所使用的数据结构
12.4.2CustDraw:使用MFC的定制作
图实例
12.5小结
第三部分 COM和Active
第13章 COM和OLE
13.1COM和OLE概述
13.2常用COM和OLE技术
13.2.1复合文档
13.2.2可视化编辑
13.2.3自动化
13.2.4OLE数据传输
13.2.5拖放
13.2.6与其他应用程序集成
13.3使用COM和OLE编程
13.3.1使用COM接口
13.3.2标识COM接口和对象
13.3.3处理GUID
13.3.4处理版本问题
13.3.5使用IUnknown接口
13.3.6创建对象
13.4COM组件的一个例子
13.4.1使用Shell扩展机制
13.4.2理解快捷菜单扩展
13.4.3创建实例
13.5小结
第14章 自动化
14.1创建使用自动化的可编程应用程序
14.2IDispatch接口
14.2.1IDispatch使用的数据类型
14.2.2IDispatch中的函数
14.2.3IDispatch接口与虚函数表
14.3创建使用MFC的自动化服务程序
14.3.1修改自动化选项
14.3.2修改文档类
14.3.3为AutoBub创建对话框
14.3.4为AutoBub画泡泡对象
14.3.5往AutoBub中加入自动化支持
14.4使用VisualBasic创建自动化控制
程序
14.5在VBScript中使用自动化
14.6小结
第15章 OLE拖放
15.1OLE剪贴板
15.1.1使用FORMATETC和
STGMEDIUM结构
15.1.2处理FORMATETC结构
15.1.3使用DVTARGETDEVICE结构
15.1.4使用STGMEDIUM结构
15.1.5使用IDataObject接口
15.2使用OLE拖放
15.2.1OLE拖放来源
15.2.2OLE拖放目标
15.3拖放实例
15.4 小结
第16章 COM线程化模型
16.1COM线程化方案
16.1.1进程内COM服务程序
16.1.2进程外服务程序
16.1.3管理进程间的内存
16.1.4使用住所中的COM
16.2STA 和MTA
16.2.1为每个线程选择一个住所
16.2.2线程的最佳住所
16.2.3为COM对象选择住所
16.2.4在客户程序和COM对象间不匹配
的住所
16.3在COM住所间调度
16.3.1共享接口指针的错误方法
16.3.2共享接口指针的正确方法
16.4小结
第17章 COM对象
17.1使用IDL
17.1.1深入MIDL属性
17.1.2编译MIDL源文件
17.1.3使用类型库
17.1.4使用IDL中的结构
17.1.5使用IDL中的枚举类型
17.1.6指针和IDL
17.1.7使用IDL中的方向属性
17.2使用ATL创建定制组件
17.2.1常用的ATL类
17.2.2ATLCOM接口映射
17.2.3使用ATL向导
17.2.4将代理/存根代码合并到DLL中
17.2.5一个定制COM对象的示例
17.3使用moniker
17.3.1系统moniker的示例
17.3.2创建moniker实例
17.3.3将moniker转换为文本字符串
17.3.4根据显示名创建moniker
17.4连接点
17.5定制调度
17.5.1深入定制调度
17.5.2深入按值调度
17.5.3实现定制代理
17.5.4在服务器上实现IMarshal
17.5.5比较使用定制代理和标准代理
的性能
17.6小结
第18章 ActiveX控件
18.1什么是ActiveX控件
18.2ActiveX控件接口
18.3ActiveX控件的属性 事件和
方法
18.3.1属性
18.3.2事件
18.3.3方法
18.4一个ActiveX控件示例
18.4.1创建工程
18.4.2绘制控件
18.4.3定义AxEdit的属性
18.4.4字符输入处理
18.4.5修改控件的位图
18.5测试ActiveX控件
18.5.1选择控件的测试容器
18.5.2使用TSTCON32测试容器
18.5.3测试属性
18.6使用ATL创建ActiveX控件
18.6.1使用ATL实现stock属性
18.6.2使用ATL实现custom属性
18.6.3通过ATL使用ambient属性
18.6.4在ATL工程中实现事件
18.6.5添加消息和事件处理程序
18.7用ATL构建的ActiveX控件
18.7.1PopButton的基本设计思路
18.7.2创建PopBtn工程
18.7.3用VisualBasic测试PopButton
控件
18.8小结
第19章 异步COM
19.1COM中的同步方法和异步方法
19.2Windows2000中对异步方法的
支持
19.2.1IDL中的异步支持
19.2.2Windows2000中其他新的异步
组件
19.2.3使用Fire和Forget模式
19.3一个异步COM的示例
19.3.1IShop接口
19.3.2AsyncTest工程
19.3.3一个同步测试客户
19.3.4IShop接口的第二版
19.3.5一个异步测试客户
19.4小结
第20章 DCOM
20.1位置透明性
20.1.1创建远程对象的实例
20.1.2使用IMultiQI接口
20.1.3确定外部引用是否有效
20.2DCOM中的安全性
20.2.1安全性的类型
20.2.2深入调用安全性
20.2.3深入模仿与伪装
20.2.4设置计算机的安全级别
20.2.5设置进程的安全属性
20.2.6深入安全模块
20.2.7设置接口的客户端安全属性
20.2.8管理服务器端的安全性
20.3使用DCOM配置程序
20.3.1使用DCOMConfig设置系统
端属性
20.3.2使用DCOMConfig设置特定
AppID的属性
20.4小结
第四部分 COM+
第21章 COM+服务简介
21.1事务简介
21.1.1ACID:事务处理的四大特性
21.1.2事务的分类
21.1.3两阶段提交协议
21.2深入COM+内的事务
21.3构建一个可支持事务处理的COM+
组件
21.3.1使用VisualBasic构建COM
对象
21.3.2启示
21.3.3向COM+应用程序中添加组件
21.4小结
第22章 构建COM+服务组件
22.1好的ComponentService组件
22.1.1生命周期/无状态
22.1.2无状态对象
22.1.3活动
22.2编写事务组件
22.2.1创建通用事务组件
22.2.2使用VisualC++创建事务性
COM+对象
22.2.3使用VisualBasic创建事务性
COM+对象
22.3使用COM编译器支持类
22.3.1TLH和TLI:检查输出
22.3.2COM编译器命令属性
22.3.3使用com_error产生和捕捉
错误
22.3.4使用任何数据:_variant_t
22.3.5使用BSTR:_bstr_t
22.4使用多个COM+对象
22.4.1组合COM+对象的事务生命
周期
22.4.2有多个对象参与的事务的输出
22.4.3错误处理
22.4.4传递参数和接口
22.5小结
第23章 使用IIS与COM+
23.1Web应用程序基础
23.1.1ASP概览
23.1.2脚本示例
23.1.3ASP应用程序
23.1.4内置的ASP对象
23.2构建Web应用程序
23.3实现方法
23.3.1对HTML窗体的处理
23.3.2管理cookie
23.3.3创建cookie
23.3.4ServerVariables集合
23.3.5对ASP错误的处理
23.3.6定义全局关键字
23.3.7强制次序
23.3.8用JavaScript简化重定向过程
23.3.9管理对象的更为简单的方法
23.3.10使用二进制数据
23.3.11编写动态代码
23.3.12动态地调整内容的大小
23.3.13数据验证
23.3.14下载文件
23.3.15发送email
23.3.16浏览器的功能
23.4组件开发
23.4.1一个简单的ASP组件
23.4.2内容更丰富的ASP组件
23.5事务性的ASP页
23.6小结
第24章 使用COM+驻留内存数据库
24.1驻留内存数据库
24.2一个简单的示例
24.2.1创建IMDB
24.2.2创建IMDB数据源
24.2.3引用资源表
24.3IMDB的一些细节问题
24.3.1在OLEDB级支持哪些接口
24.3.2特定条件是如何与OLEDB使用
者模板相关的
24.3.3ADO使用的细节
24.4小结
第25章 高级COM+服务
25.1通过对象共享和负载平衡获得可扩
展性
25.1.1实现IObjectControl
25.1.2动态负载平衡
25.2一些高级的事务概念
25.2.1避免死锁和阻塞
25.2.2IObjectConstruct接口
25.2.3特定情况下的事务控制
25.2.4由客户控制事务
25.3排队组件
25.3.1什么是排队组件
25.3.2排队组件是如何工作的
25.3.3编写排队组件
25.3.4使用排队组件发送返回消息
25.4异步分发信息
25.4.1出版者/订户结构简介
25.4.2构建出版者/订户工程
25.5小结
第五部分 分布式Wind0ws2000服务
第26章 管道
26.1管道的类型
26.2无名管道
26.2.1创建和关闭无名管道
26.2.2管道的读和写
26.2.3使用无名管道与另一进程通信
26.2.4使用无名管道的一个示例
26.3有名管道
26.3.1有名管道的类型
26.3.2创建和关闭有名管道
26.3.3连接和使用有名管道
26.3.4使用有名管道的示例
26.4小结
第27章 活动目录
27.1活动目录概览
27.1.1名字空间组织
27.1.2树和森林
27.2使用ADSI管理活动目录
27.2.1在VisualBasic和VisualC++中
使用ADSI
27.2.2ADSI绑定字符串
27.2.3ADSI辅助函数
27.2.4无服务的绑定和ADSI
27.2.5ADSI所提供的COM接口
27.3其他资源
27.4小结
第28章 MSMQ
28.1MicrosoftMessageQueueServer
简介
28.1.1MSMQ和有名管道
28.1.2安装MSMQ
28.1.3消息队列的类型
28.1.4公用队列和专用队列
28.2MSMQ对象属性
28.2.1队列属性
28.2.2消息属性
28.2.3机器属性
28.2.4内存分配
28.3使用Win32API创建和管理消息
队列
28.3.1创建消息队列
28.3.2打开已有的队列
28.3.3向消息队列发送消息
28.3.4从消息队列中接收消息
28.3.5关闭消息队列句柄
28.3.6删除消息队列
28.4用VisualBasic编写的消息队列客户
程序
28.5小结
第29章 集群服务器
29.1集群服务器的结构
29.1.1集群服务器的硬件
29.1.2MSCS软件组件
29.1.3集群的启动和恢复
29.2集群API
29.2.1集群对象管理API
29.2.2资源DLLAPI
29.2.3集群管理扩展API
29.3一个可感知集群的示例
29.3.1ClusterQuote工程
29.3.2QuoteClient工程
29.3.3HighAvailabilityQuotes集群资源
类型
29.4小结
· · · · · · (收起)

读后感

评分

http://www.nba5i.com/bbsxp/ShowPost.asp?ThreadID=333

评分

http://www.nba5i.com/bbsxp/ShowPost.asp?ThreadID=333

评分

http://www.nba5i.com/bbsxp/ShowPost.asp?ThreadID=333

评分

http://www.nba5i.com/bbsxp/ShowPost.asp?ThreadID=333

评分

http://www.nba5i.com/bbsxp/ShowPost.asp?ThreadID=333

用户评价

评分

这本书的阅读体验,怎么说呢,它有点像是在攀登一座设计精妙的知识阶梯,每走一步都需要稳扎稳打,无法投机取巧。我记得我为了理解其中关于线程同步原语(如事件对象和互斥量)的性能权衡部分,前前后后查阅了至少五篇相关的微软白皮书来交叉验证作者的论点。这本书的强大之处在于,它将那些在官方文档中被分割得支离破碎的概念,进行了高度的整合与提炼。比如,它将中断处理流程与陷阱处理机制放在了一起进行对比分析,一下子就揭示了它们在特权级别和恢复机制上的根本区别。不过,也正因为它的深度,我必须承认,这本书的门槛并不低。对于那些只停留在应用层编程的开发者来说,前半部分可能需要极大的耐心去适应那种完全从硬件抽象层开始的思维模式。但只要你能坚持下来,读完关于进程间通信(IPC)机制的章节,你会发现你对传统API的理解会上升到一个全新的维度,你会开始思考如何在不同安全级别下构建健壮的通信桥梁。

评分

这本书的语言风格有一种独特的、近乎学术报告的严谨性,它很少使用口语化的表达,一切都以事实和逻辑为基石。我尤其欣赏它在描述权限模型和安全上下文切换时所展现出的精确性。作者对特权级别(Ring 0/Ring 3)的描述,不仅仅是概念上的区分,更是通过一系列的系统调用流程图,展示了权限提升和降级在CPU级别是如何被硬件和OS共同保障的。我记得有一个篇幅详细讲解了Token对象的结构及其在安全审计中的作用,这部分内容对理解复杂的企业级应用权限控制模型打下了坚实的基础。总而言之,这是一部需要你沉下心来、带着笔记本和调试器去研读的经典之作。它不像市面上那些追求快速上手的指南,它更像是为那些立志要成为系统级专家的工程师们准备的一份珍贵“地图”,指引方向,但攀登的辛苦,最终还是要靠自己去克服。

评分

坦白说,我最初购入这本书是冲着它“内幕”二字去的,期待能挖出一些不为人知的操作系统内核的秘密,然而,阅读体验却给我带来了一种意想不到的惊喜——它更像是一部结构严谨的工程学教科书,而不是狗仔队式的八卦小报。书中对I/O子系统的工作流程,特别是同步与异步操作的机制,进行了近乎偏执的细致分解。我特别欣赏作者在描述内核对象生命周期管理时所采用的“追溯法”,从用户层发起一个请求开始,一步步追踪到硬件驱动层,然后清晰地展现数据是如何在不同层次间流转、状态是如何被标记和更新的。这种自顶向下、步步为营的叙述方式,使得即便是那些非常底层的上下文切换细节,也变得逻辑清晰、易于消化。它很少使用夸张的语言来吸引眼球,而是用精确的技术术语和严密的逻辑链条来构建知识体系。对于任何想要真正理解操作系统“黑盒子”是如何运作的工程师来说,这本书提供的技术深度和广度,绝对是教科书级别的范本,它教会我的不仅仅是“是什么”,更是“为什么必须是这样”。

评分

最让我感到佩服的是作者对系统性能瓶颈分析的视角。这本书并非仅仅停留在描述API的用法上,而是深入剖析了设计决策背后的性能考量。例如,书中有一段讨论了内核模式下的数据拷贝操作,作者详细对比了使用`memcpy`和特定总线 DMA 传输在不同场景下的效率差异,并结合当时的硬件架构给出了非常具体的建议。这种将软件工程与硬件架构紧密结合的分析方法,在当时的同类书籍中是相当罕见的。我曾经根据书中对某一特定系统调用的延迟分析,优化过一个旧项目的关键路径,效果立竿见影,这让我深切体会到理论指导实践的力量。这本书的价值在于,它提供了一种批判性思考的工具,让你不仅能写出能运行的代码,更能写出在资源受限环境下依然能保持高效的“优雅”代码。它迫使你像一个系统架构师那样去思考每一个函数调用的代价。

评分

这本书的装帧和纸张质量简直让人眼前一亮,那种沉甸甸的手感,配合上封面上略带复古的字体设计,立刻就能感受到它蕴含着深厚的专业底蕴。我特意翻阅了几页,发现排版设计非常考究,即便是在讲解那些晦涩难懂的底层概念时,作者也尽可能地用清晰的图表和恰到好处的留白来辅助理解。我记得其中有一章专门探讨了内存管理模型的演变,图示清晰地勾勒出了进程地址空间是如何被划分和映射的,这对于初学者来说,无疑是一座巨大的灯塔。更让我惊喜的是,随书附带的光盘(虽然现在看来有点怀旧了)收录了大量的代码示例和调试工具的精简版,这些实操资源极大地降低了理论学习的门槛。我尝试编译了几个核心服务程序的源码片段,整个过程异常顺畅,这说明作者在代码的兼容性和注释的详尽性上下了极大的功夫。这本书的整体感觉就像是拿到了一份珍藏的官方技术手册,严谨、全面,让人对当时微软操作系统的工程实现细节充满了敬畏之心。它不仅仅是知识的堆砌,更像是一份技术匠人对操作系统艺术的深刻剖析和致敬。

评分

评分

评分

评分

评分

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2026 book.quotespace.org All Rights Reserved. 小美书屋 版权所有