- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Windows 驱动开发笔记 (一 )
Windows 驱动开发笔记 (一 )/
2008-5-3 网络 点击 : [ 评论 ]
文章搜索:点击打包该文章】
文章搜索:
点击打包该文章】
本站开通在线 QQ 讨论群】
Windows 驱动开发笔记 (一 )
Windows 驱动开发较 unix 类的驱动开发要复杂一些。最近, 在学 windows 开发。现在把学到的知识整理一下。 做做笔记。
1. 我使用的资料: 《深入解析 windows 操作系统》
Programming the microsoft windows Driver Model 》
Windows 2000/xp WDM 设备 驱动开发》 武安河著 《Linux 驱动开发》
2. 开发环境 VPC2004 、 Windows2003 、Windows DDK
首先是环境安装。资料很多自己做了。
在 VPC 中安装好 windows2000 。使用 windbg 作为调试工具。
环境安装完成后,就可以一边学习一边做试验了。我比较喜 欢这种方式。
现在开始进入主题。
概念(一):系统模式和应用模式。
系统模式是指工作在一个管理级别的状态。这个状态具有没 有约束的权利。所以这样的代码如果工作不正常就会给系统 带来灾难!驱动程序通常工作在系统级。应用模式(或称用 户模式)。这一模式受到操作系统的管理。一个应用程序崩 溃通常不回给整个系统带来灾难。要正确理解模式的概念。
我的经验是看一看 unix 原理的书。可以较好的理解这一含 义。
Windows 是一个多任务的操作系统。 CPU 的使用是影响系统 性能的重要因素。任务之间要同时进行就必须要有很好的
CPU 调度策略。 Windows 的任务调度给驱动程序的编写带来
了一些麻烦。个驱动程序不能长时间的独占
了一些麻烦。
个驱动程序不能长时间的独占 CPU 时间。 通
常把驱动程序划分成可以被中断的和不可以被中断的。必须 要独占 CPU 的就是不能被中断的。 反之, 是可被中断的。 在
WINDOWS 的系统中通过中断级别 (IRQL) 来标记一段代码 是否可以被中断。如果引入中断就有可能带来重入问题。这 个问题会带来资源的调度问题。这个我不多说了。可以参考 操作系统的书籍。
概念(三):驱动程序的调用。
驱动程序的代码是为应用服务的。所以,他的调用通常都是 被动的。 因为,你不知道用户什么时间使用哪个功能。 所以, 驱动程序的代码多数是些片段(通常就是完成某个功能的函 数)。不象应用程序一样自己知道下一步该干啥了。就会没 有整体感。只要,函数完成一个规定的功能就可以了。不用 管他什么时间被调用。既然是被调用。就要让系统知道你的 函数在哪里。这就需要告诉系统你的函数的指针。这就需要 注册你的函数指针。怎么样注册呢?一种方法是写个固定名 称的函数。就像 C 中的 main 一样。不能瞎起名字。第二种 就是指针登记。这需要填写 DriverObject 这个数据结构的相 应功能的项目。如:
DriverObject-gt;MajorFunction[IRP_MJ_PNP]=CharSampleP npDispatch;
这个代码就完成了 CharSamplePnpDispatch 这个函数的注册 了。
概念(四):IRP
IRP 是一个不好理解的概念。 IRP 就是 I/O 请求包的称为。 I/O
请求包是什么呢?上面说了驱动是一些等待被调用的独立 函数。用户请求读一个设备时,通常需要多个步骤来完成。
这就要有一个完成该功能的一个函数的调用列表。这个任务 列表就是 IRP 结构的一部分内容。当用户发出一个请求时,
系统就根据请求产生一个 I R P 。然或系统就依照这个 IRP 的 指示去调用相应的函数功能。
概念(五):过滤驱动(过滤层、过滤函数)
Windows 的 WDM 模型采用了分层的设计方法。 这样的设计
可以实现灵活的任务组织。上面说了驱动是一些等待被调用 的独立功能函数。一段功能代码只完成有限的功能。在调用 时在进行任务的组合。过滤函数是一些主要功能任务的补充 功能。在一个主要功能前调用的是上层调用。在主要功能后 调用的是下层调用。而且,可以是多层的。如我们写了一个 读 U 盘的驱动。这个 U 盘有一个特殊的功能是对数据进行加 密。我们就可以在读写物理设备前后加入一个过滤驱动完成 这个操作。
文章出处:
/course/4_webprogram//asp_netshl/ 200853/112429.html
您可能关注的文档
最近下载
- UbuntuLinux操作系统第2版(微课版)钟小平课后习题答案.doc VIP
- 输电线路三跨的经验分享.ppt VIP
- 电动汽车分布式驱动系统动力学分析与优化设计.docx VIP
- 专题1.4数轴与动点经典题型(四大题型)(原卷版+解析).docx VIP
- 幼儿小蝌蚪找妈妈绘本ppt课件.pptx VIP
- 磷酸铁行业现状.docx VIP
- 马克思主义与社会科学方法论课后习题答案(2018版).pdf VIP
- 6.1 树立法治观念 统编版道德与法治八年级上.pptx VIP
- GB_T 43933-2024 金属矿土地复垦与生态修复技术规范.pdf VIP
- 车牌识别系统软件使用说明8.1软件基本设置.pdf VIP
原创力文档


文档评论(0)