- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
文件系统驱动编程基础篇之
文件系统驱动编程基础篇之1——我们的准备
关键字:文件系统驱动编程基础篇
作者:wskjuf 更新:2008-10-06 21:56:51 浏览:14781
文件系统驱动编程基础篇之一——我们的准备
一、导言
Using Serial Ports》(VMware官方文档)5.《安装DriverStudio3.2 过程中出现DSDDKEnv8.dll failed to register错误的解决方法》6.《驱动程序和应用程序编译出现的问题及解决方法》 7.《Essentials Of Building Windows Drivers》阅读基础:不限。本章目的:了解操作系统的基本架构、构建调试器环境、驱动程序编译的一般步骤。
二、基本架构
为了保证性能,汇编与c成为操作系统编写的首选语言,Windows家族的前辈都不例外,唯独Vista那庞大的身躯,让人不禁疑惑微软究竟如何才能诞下比恐龙还大的怪物。与此相反,WinPE作为维护型操作系统可以被一个32M的U盘所容纳。不管外观上的诸多差异,功能上的强弱区别,我们所关心的是它们的共性——即操作系统的内核。与操作系统密不可分的文件系统,就成为我们研究内核的一条途径。Windows采用了基于对象模型(object-based model)的设计方式,各功能划分为不同的组件,两幅常见的架构图如下:我们把入口选定为Win32子系统(Win32 Subsystem),它是我们接触最多,也最熟悉的一个子系统。硬件抽象层(HAL)及其以下部分目前不在我们关注的焦点内,我们将精力集中在系统执行层和核心层,它们具体的功能请参看资料2的第一章。内核模式下除了屈指可数的几个函数,一切都将是全新的——全新的思想、概念、模型、结构、函数,跨越的幅度不亚于从c语言编程迁移到c++语言,用c语言的思维来学习c++必然会产生阻碍。令人欣慰的是,这里没有特色之流的术语,绝大部分内容都符合人的记忆规律。你将很快掌握设备对象、IRP、IO堆栈等基础结构,同时你还发现以前很难记忆的PEB、TEB、_ETHREAD等一系列无详细文档甚至无文档结构都已有迹可寻,如果你足够勤奋,甚至会在一年左右的时间后就可以阅读天书般的防火墙源码。让我们先来完成必要的准备工作吧。
三、调试环境的构建
在用户模式下编程,除了编译器几乎可以不需要其他辅助工具。想查看输出?直接ShowMessage即可,内核模式下,如果不希望摔得筋折骨断后才有所醒悟,你该在入门前就选好几件宝物——注意它既不是闻西同志的西瓜刀,更不是单车链。
Microsoft Visual Studio 200x + Windows IFS Kit and DDK xxx + Compuware DriverStudio 3.x + VAssistX xxx + VMware
如果记忆力超强的读者,也可以选择C++Builder、Delphi + 插件的形式,有些站点正在致力于推广这方面的技术,对于新手而言,还是用原装货为上策。Windows IFS Kit and DDK是收费软件,电驴上有试用版,依照资料6的说明完成安装,注意选上xp和2000部分;Compuware公司已经改行不做DriverStudio,幸好出家前支持了vs2005,安装完成后,根据资料5打上VisualStudio 2005 Integration fix补丁;VAssistX有试用限制,不巧有人发现不修改代码而使用trial-reset_32清Armadillo壳,可以恢复试用时间,安全而可靠。VassistX增强了编译器的语法提示、代码搜索功能,大大提高了千行规模子程序的阅读与书写效率。VMware虚拟机用于减少重启的烦恼,提高调试的效率。经过一阵忙碌后,一个已经设置好的编译器出现了:
VMware虚拟机下的Debugging Tools for Windows(即WinDbg)
读者也可使用VirtualPC虚拟机。在虚拟机上安装双系统(Windows 2000,2003,xp,pe等),可方便删除造成系统启动崩溃的“不良”驱动程序。为了方便,我们把虚拟机上的操作系统称为远程机。首先我们在本地机上安装WinDbg,运行后进行如下设置:
设置符号文件搜索目录,菜单File-Symbol File Path…-填入SRV*c:\symbols*/download/symbols串,它表示使用微软的文件符号服务器。如果你的电脑未联网,则只能通过其他方式获取微软站点上的符号文件,采用本地符号目录,调试时往往会出现一些版本不匹配的问题。符号文件非常重要,如果WinDbg找不到合适的符号文件,将无法解析代码里的数据结构。文件符号服务器上的符号文件用于解析操作系统文
您可能关注的文档
- 数据结构实验报告叉树.doc
- 数据结构实验报告实验题目元多项式.doc
- 数据结构实验树和叉树的操作.doc
- 数据结构实验树的叉链表表示及其遍历.doc
- 数据结构实验题目元多项式.doc
- 数据结构开发性试验_最小生成树关键路径拓扑排序.doc
- 数据结构教程十课十课.doc
- 数据结构期末综合练习(运算题).doc
- 数据结构期末复习试题(附答案).doc
- 数据结构树和叉树.doc
- 浅析GPU资源监控及虚拟化.docx
- 跨机房部署or多集群容灾?架构师热议:金融行业如何选择信创数据库容灾方案?.docx
- 数据中心中压供电系统测试探究.docx
- 绿氢标准、融资体系及中欧氢能合作路径分析.docx
- 住宅小区物业管理提升实施方案.docx
- 对照带头严守政治纪律和政治规矩,维护党的团结统一方面存在的主要问题精选(通用六篇).docx
- 党员2025年带头严守政治纪律和政治规矩,维护党的团结统一等四个方面存在的问题及改进措施5篇(详细版).docx
- 对照带头严守政治纪律和政治规矩,维护党的团结统一方面存在的主要问题范文精选(6篇).docx
- 滚透溶解性:破解酸碱盐.pdf
- 公司组织与管理实训报告.docx
文档评论(0)