若干重要的Windows参考资料

dbus在windows上的编译 介绍如何在Windows平台上编译dbus库。 阅读详情
要让Linux内核支持Windows应用程序和设备驱动,我们当然得要了解并理解Windows的各种机制和机理。本文的目的是为大家介绍和推荐一些关于Windows的参考资料。当然,对Linux的了解和理解更是必不可少,但是笔者以为既然是行走于我们这个地界的人,对Linux想必自有一定的基础,所以Linux方面的参考资料这里就不讲了。
    说到Windows的技术资料,微软本身的各种SDK、DDK、以及MSDN网站上的资料当然是重要的,但是信息量太大。在笔者看来,微软的资料数量之大正是由于不公开源代码。一件东西,放在透明的玻璃瓶里,自然就不需要作太多的描述;而若封装在一个黑盒子中,描述起来可就费劲了。微软既不肯公开其源码,却又想要别人在此基础上开发各种第三方软件,自然就得对其各种产品作黑盒子描述,“信息爆炸”就不可避免了。许多人见了微软的资料就烦,是因为这些资料只告诉你“其然”而不告诉你“其所以然”。也有许多人很喜欢微软的资料,是因为这些资料就像使用手册,所以“一抓就灵”。也难怪市面上有那么多关于 Windows的各种“宝典”。读微软的资料可以使你成为“很好的”工程师,却不会使你成为科学家。
    不过,幸而还有一些书,在讲述其然的同时还在讲述其所以然。有趣的是,其中特别重要的几本正是由微软出版社组织和出版的。可见微软自己也知道,光作黑盒子描述,光让人家知其然而不知其所以然,是不够的,那样很难成长起高质量的Windows软件开发人员,反过来对微软也不利。这跟奴隶主有时候也意识到该让奴隶们吃的壮实一些,是同一个道理。而对于我们,这些书的重要性就不言而喻了。

    Windows参考书的首选当推Mark Russinovich和 David Solomon的“Microsoft Windows Internals”第4版,微软出版社2005年版。我们只要简单回顾一下这本书 的历史,读者就可体会到它的重要性。这本书的第一版由Helen Custer编写,书名“Inside Windows NT”。第二版(1998年) 改由David Solomon编写,由WinNT开发团队的主任Lou Perazzoli作序。第三版(2000年)的书名改成 “Inside Windows 2000”,由David Solomon和Mark Russinovich共同编写。到了第四版,书名又改成 “Microsoft Windows Internals”,由Mark Russinovich和David Solomon共同编写。尤其引人注目的是,第四版上有David Cutler写的前言,题为“Historical Perspective”,文中回顾了WinNT的由来。这位 David Cutler可不是等闲之辈,他是WinNT之父。就是他,当年把VMS的技术和(部分)人马从DEC带到了微软。有个笑话很形象地说出了 WinNT和VMS之间的渊源关系:把“VMS”这三个字母的ASCII代码每个都加1,就成了“WNT”。而David Solomon是 David Cutler在DEC就相识的老伙伴。正是David Cutler特许David Solomon可以自由翻看WinNT的源代码。这种 “看”,跟把人请去住在旅馆里十天半个月、每天去微软资料室看上几个钟头的那种“双规”下的“看”,当然有着天壤之别。所以,这本书应该说是一本权威著作,书中所讲应该认为是有源代码根据的。再说,这本书也确实让人知其然并且知其所以然。当然,要是有源代码就更好了,但是要知道那是微软,能有如此这般就很不错了。在兼容内核的开发过程中,这本书无疑将在总体上起很大的指导作用。
    第二本书是Walter Oney的 “Programming the Microsoft Windows Driver Model”第2版,微软出版社2003年版。这本书对微软的 WDM设备驱动模型(即框架)作了深入的介绍。微软要求从Win2k开始的设备驱动模块都符合WDM的要求。与传统的WinNT设备驱动相比,WDM要求设备驱动模块都支持PnP(即插即用)、电源管理(不用时可转入省电模式)、以及WMI (Windows Management Instrumentation,意为Windows管理手段,是微软版的WBEM实现)。所以,这本书所介绍的是新的Window设备驱动框架的设计与实现,附带着也介绍了设备驱动界面上的一些重要的函数。显然,这本书对于兼容内核中设备驱动框架和设备驱动界面的实现有着重要的指导意义。读了这本书,再回过去看Windows DDK中一些样本实例的源代码,就更容易理解,理解也可以更深了。
    不过,现在实际上在使用的.sys模块还有不少只是传统的WinNT设备驱动。WinNT的设备驱动框架可以说是WDM的一个子集,比WDM要简单一些。对于WinNT设备驱动,Art Baker的“The Windows NT Device Driver Book”是一本很好的参考书。这本书是由 Prentice Hall在1996年出版的。虽然年代已经久远,书的内容却并不显得太陈旧,可以作为WDM那本书的补充,参照阅读。
    第四本书是Jeffrey Richter的“Advanced Windows”第3版,微软出版社1997年版。这本书就不仅仅是讲内核了。它让读者对Windows操作系统有个整体上的理解。例如,在另一篇文章中笔者曾提到,Windows在创建子进程时对于已打开文件的遗传与Unix/Linux 在方式上有很大的不同,这本书对此就有很详细的叙述。而这一点正可以说明,不同内核间的有些差别是很难在内核外面得到补偿的。
    第五本书是 Gary Nebbett的“Windows NT/2000 Native API Reference”,MTP出版社。这里所说的 “Native API”,实际上就是系统调用。显然,这是一本关于WinNT系统调用的参考手册。既然微软把系统调用界面藏在黑盒子里面,或者说藏在 Win32 API后面,从来都不公开,那么这本参考手册的价值也就不言而喻了。看一下这本书,就可以知道实现Windows系统调用界面的工作量该有多 大。
    作为对这本书的补充,Parasad Dabak等人的“Undocumented Windows NT”,M& T Books,1999年出版,对于WinNT系统调用的实现也是一本有用的参考书。与前面几本由微软出版的参考书不同的是,这两本书的材料主要是通过逆向工程得来的。有源代码作为根基的著作固然比较权威,根据实验取得的资料也值得重视。
    还有一本Sven Schreiber的 “Undocumented Windows 2000 Secrets”,Addison-Wesley,2001年出版,也是一本好书,甚至更好。这本书一边是基于逆向工程介绍Windows内核各方面的内容,也包括设备驱动;另一边还教给读者一些逆向工程的方法,所以对程序的调试很有好处。特别值得一提的是,这本书的附录中实际上还列出了Win2k系统调用的函数跳转表、即函数名与系统调用号的对照,书中还讲述了这个对照表是如何得来的。这可是个宝贵的信息。因为Native API一书中虽然详细介绍了各个具体系统调用的使用方法,却并未提供它们的系统调用号。而若缺了这个信息,我们在实现 Windows系统调用界面的函数跳转表时就得多费许多周折。
    最后,Rajeev Nagar的“Windows NT File System Internals”,O’Reilly,1997,虽然主题是“文件系统内幕”,但是实际上对内核的各个方面都有一些介绍,也有一定的参考价值。
    这八本书是笔者所知最好的Windows参考书。当然,并不是说读者必须读了这八本书的全部才能从事兼容内核的开发,更不是说读了这八本书就一定可以把兼容内核开发好。


参考书目
Mark Russinovich,David Solomon,“Microsoft Windows Internals”,4e,Microsoft Press,2005
Walter Oney,“Programming the Microsoft Windows Driver Model”,2e, Microsoft Press,2003
Art Baker,“The Windows NT Device Driver Book”,Prentice Hall,1996
Jeffrey Richter,“Advanced Windows”,3e,Microsoft Press,1997
Gary Nebbett,“Windows NT/2000 Native API Reference”,MTP, 2000
Parasad Dabak, “Undocumented Windows NT”,M&T Books, 1999
Sven Schreiber,“Undocumented Windows 2000 Secrets”,Addison-Wesley,2001
Rajeev Nagar,“Windows NT File System Internals”,O’Reilly,1997
Windows Server 2003操作与管理完整参考资料 本文还有配套的精品资源,点击获取 简介:《Windows Server 2003参考资料》是一份深入讲解该操作系统核心概念、功能和管理技术的文档。涵盖了活动目录、域控制器、远程桌面服务、IIS、组策略、文件和打印服务、备份与恢复、性能监控、安全增强、系统更新等特性。提供了最佳实践、故障排除、案例研究等信息,帮助IT专业人员提升服务器管理和故障排查能力。 1. Wi... 阅读详情

相关推荐

Windows深入剖析(初始化篇).

Windows深入剖析(初始化篇).Windows深入剖析(初始化篇).

学习windows内核书籍推荐 ----------转自http://tieshow.iteye.com/blog/1565926

虽然,多年java,正在java,看样子还得继续java。(IT小城,还是整java随意点)应用程序 运行于操作系统之上, 晓操作系统,方更晓应用程序。主看windows,因为可玩性高,闭源才有意思。(莫忘2008年,微软盗版黑屏事件)书籍推荐(全中文),按顺序====== windows应用程序 =============C&C++, 略(懒~...

dianbiao4727的博客 442

PSINS惯性系初始对准与代码解读

本文参考“摇摆基座上基于信息的捷联惯导粗对准研究”(秦永元),以及“严恭敏博士后研究报告”,详细解读并推导了静基座惯性系对准算法,并与PSINS代码进行对照解读。

u011012050的博客 6755

Windows内核方面的经典书籍

Inside Windows 2000;Microsoft Windows Internals。这两本书分别是同一套Windows内核架构分析书籍的第三版和第四版,两位作者在编写本书的过程中被授权察看Windows的相关源码,所以可以说这两本书是Windows内核分析的第一手资料; Programming the Microsoft Windows Driver Model,

温研的专栏 (探索OS内核的奥秘) 7877

别再死记硬背了!用Wireshark抓包实战,5分钟搞懂GRE、L2TP、IPsec的区别

本文通过Wireshark抓包实战,详细解析GRE、L2TP和IPsec三大隧道协议的核心差异与应用场景。从报文结构到配置示例,帮助网络工程师快速掌握这些协议的本质,提升VPN部署与故障排查能力。特别适合准备HCIP认证的工程师深化理解。

weixin_30352645的博客 439

YOLOV26详解 从原理到部署

计算机视觉领域最具影响力的目标检测框架迎来重大里程碑。2026年1月,Ultralytics 正式发布 YOLOv26——这不是一次简单的版本迭代,而是一场面向边缘计算时代的架构重构。本专栏基于 Ultralytics 官方技术白皮书、YOLO Vision 2025 大会首发内容及国际前沿研究成果,系统拆解 YOLOv26 从算法原理到工程落地的全栈技术体系。与常规教程不同,我们聚焦与,帮助你在端侧 AI 部署的实战中掌握核心竞争力。

u012133341的博客 2029

WDF内核驱动------基础入门书籍参考

记录一下从零到壹学习WDF内核驱动的过程中用到的参考书籍等。因工作项目需要,接手了一个windows内核驱动小项目,当时对windows内核驱动一窍不通,对windows内核原理的知识储备为基本为零。从b站到油管都搜罗了一遍,免费讲WDF内核驱动的视频博主比较少,付费的学习周期长。3.《Windows驱动开发技术详解》- 张帆 & 史彩成。《竹林蹊径 深入浅出Windows驱动开发》-张佩等。2.《windows内核编程》-谭文&陈铭霖。3.微软官网驱动开发参考代码------

qq_42383894的博客 829

深度探索:VS2022 牵手 DeepSeek,开启开发新征程

通过将 VS2022 与 DeepSeek 接入,我们成功开启了智能开发的新征程。从前期的硬件准备、软件环境搭建,到实战环节的一步步配置与整合,再到全面的测试与验证,每一个步骤都充满挑战,但也带来了满满的收获。在实际应用中,VS2022 与 DeepSeek 的结合展现出了强大的优势,为开发者带来了更高的效率和更出色的代码质量。无论是代码自动补全、智能代码审查,还是自然语言交互编程,都让开发过程变得更加智能、便捷,极大地提升了开发体验。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 3525

经典书籍

windows的经典书籍> 和>可以说是姊妹篇了。前者讲的是Windows 2000的一些机制,后者更注重这些机制的一些在编程接口上的应用,即哪些编程接口是和核心比接有关的,如何利用这些高级特性,编出更高质量的程序。较老的书就是Inside Windows 95。《Windows 2000设备驱动程序设计指南》(The Windows 2000 Device DriverBook)第二版  机械工

小草与大地的故事 1066

29、高速低功耗采样保持放大器设计

本文详细介绍了适用于低功耗模数转换器的高速低电压采样保持放大器(SHA)的设计技术,包括传统SHA的局限性、采样技术分类以及全NPN型和BiCMOS型SHA的具体设计实现。同时,文章深入探讨了优化输入电容、采样开关驱动及低功耗设计等具体措施,并提供了10位ADC前端和无线通信应用中的实例分析,为相关领域的工程师提供有价值的参考。

weixin_30600615的博客 426

功能安全实战系列12-英飞凌TC3xx锁步核及其自检开发

本文介绍了英飞凌Tricore系列芯片的锁步核(Lockstep Core)功能及其故障注入自检机制。锁步核通过主核和检查核同步执行指令,并比较输出结果来检测硬件故障。文章详细阐述了锁步核的工作原理、使能配置方法以及故障注入自检的实现过程。故障注入测试通过专用寄存器LCLTEST触发,系统会定期自动测试比较器节点,验证锁步核的故障检测能力。当检测到异常时,会触发SMU模块的警报机制。该技术为汽车电子系统提供了重要的功能安全保障。

initiallizer的博客 923

WCF性能优化参考资料

WCF性能优化参考资料http://automationqa.com/forum.php?mod=viewthread&tid=1432

软件质量优化 3268

具身智能 | 从具身智能出发谈多传感器融合技术

多传感器融合感知是具身智能系统突破“感知—认知—行动”闭环的核心使能技术。本文从具身智能的视角出发,对多传感器融合技术进行系统综述。首先阐述了具身智能对多传感器融合提出的独特需求,包括异构感知集成、跨模态语义对齐和实时闭环决策。其次,构建了多层级融合技术分类框架,从数据层融合、特征层融合、决策层融合、时序融合到多模态大语言模型(MLLM)融合,逐层梳理主流方法与演进脉络。在此基础上,分析了面向具身智能的通用融合架构设计,涵盖了感知—推理—执行三层架构及其关键组件。

尘世冰封的专栏 315

【Windows】通过命令行管理 Windows 应用

通过命令行管理 Windows 应用

杨群的博客 1195

《低功耗方法学》翻译——卷首语

低功耗设计方法学。

记录所学,分享知识,结识挚友 993

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

记录安装Docker for Windows参考资料

# 初识配置 https://docs.microsoft.com/en-us/windows/wsl/install-win10#step-1---enable-the-windows-subsystem-for-linux https://blog.youkuaiyun.com/magefreehome/article/details/107885573?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromBaidu-1.contro

ZZULI_星.夜 1457

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

windows驱动开发参考资料地址

Windows文件过滤驱动开发 http://blog.sina.com.cn/s/blog_7785041f0101jekb.html

Lydia的博客 1111

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Vista操作系统评估参考资料

Vista操作系统评估参考资料 很久没有更新空间了。 这个Windows Vista操作系统评估参考资料,是昨天应公司某位Leader做的。 主要参考了微软网站的一些资料。介绍了Vista的一些版本知识,购买方式等内容。 各位有兴趣可以看一下。 ...

weixin_34358092的博客 78

Windows HTTP Services 参考资料

Windows HTTP Services 参考资料 2009年12月14日   参考:http://msdn2.microsoft.com/en-us/library/aa384273(VS.85).aspx   WinHttp; // Microsoft WinHTTP Services, version 5.1   Alias HTTPREQUEST_PROXY_SETTING...

nmv884rp 546

Windows GUI 编程参考资料

<br />http://msdn.microsoft.com/en-us/windows/ff458509.aspx

fr_rf的专栏 836

JIURL玩玩Win2k 参考资料

JIURL玩玩Win2k 参考资料作者: JIURL                 主页: http://jiurl.yeah.net     日期: 2003-7-30 《Undocumented Windows 2000 Secrets, A Programmers Cookbook

jiurl的专栏 2364

c# WebBrowser开发参考资料

c#WebBrowser开发参考资料 原文:c#WebBrowser开发参考资料 c#WebBrowser开发参考资料,所有资料的采集均来自网上 话说有了WebBrowser类,终于不用自己手动封装SHDocVw的AxWebBrowser这个ActiveX控件了。这个类如果仅仅作为一个和IE一模一样浏览器,那就太 ...

weixin_30877755的博客 79

ReportView(RDSL)参考资料

ReportView(RDSL)参考资料 微软官方reportview参考:http://msdn.microsoft.com/zh-cn/library/ms251671.aspx http://www.gotreportviewer.com/需用代理 post...

weixin_30273175的博客 179

Windows API函数大全(Windows编程参考手册)

Windows API包括几千个可调用的函数,它们大致可以分为以下几个大类:基本服务、组件服务、用户界面服务、图形多媒体服务、消息和协作、网络、Web服务。

Aliven888的博客 2万+
上一篇: FUTo: Bypassing Blacklight and IceSword
下一篇: My Root Kit Note
iiprogram
博客等级 码龄25年 1068粉丝 1515原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值