- 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 2000/XP WDM设备驱动程序开发》书中所有实例的驱动程序和应用程序的全部源代码,以及生成的驱动程序和可执行的应用程序。除USBCounter和PCI9054实例因需要硬件设备的支持,读者无法运行外,其它18个实例均可运行。
光盘中的实例在Windows XP操作系统下生成,它们在WDMBOOK_XP目录下。
在WDMBOOK目录下,又包含三个子目录,其中:
①Chinesedot目录下的HZK16点阵字库,FileThread实例需要用到,但其默认路径为“E:\WAHBOOK\CHINESEDOT\HZK16”。
②Coumter.asm目录下的文件为USB范例中的CY7C63001 CPU芯片的程序。
③设备类注册表下的注册表文件用于创建Windows 2000和Windows XP操作系统下的“WDM范例”设备类信息,直接双击可写入注册表中。
安装本书中的范例后,可在设备管理器中观察到如上图所示的信息。
请采用DriverStudio 3.1提供的EZDriverInstaller新工具,安装和卸载所测试的WDM程序,修改的INF文件在“..\sys\objchk\i386”目录下,如上图所示;在“..\sys”目录下的为DriverStudio自动生成的文件。
光盘中WDMBOOK_XP目录请您拷贝到E盘中,因笔者是在E:\WDMBOOK_XP目录下调试完成的。
为避免版权纠纷,下面列出了本书所参考的文档资料,请您在网上查阅。
本书Windows XP中WDM驱动程序及应用程序实例所用的工具包有:Visual C++ 6.0、Windows.XP.SP1.DDK、 Windows XP SP2 SDK,和Compuware DriverStudio 3.1,请依此顺序安装这些工具。
本书中的范例在生成时,克服了无数的错误,经历了太多的“蓝屏”、“死机”和“重启动”。当你调试自己的驱动程序时,也可能发生这些问题,请你保持平和的心态,戒急戒躁,用SoftICE仔细调试,找出引发错误的语句。
如果你按书中介绍的步骤而没有入门的话,可能是操作系统有问题,你不妨再换一台微机试验一下。
1.CharFilter实例
第11章的CharFilter是CharSample的上层过滤器驱动程序。
第2章的CharSample实例的功能是:一次将一个数字(0-9)转换成一个中文(零-九)。CharFilter实例的功能是:一次可接收多个数字(0-9),然后一个一个传递给CharSample,待所有的数字转换完毕后,完成一次操作。
Test_CharFilter应用程序
2.CharFilter_Class实例
第11章的CharFilter_Class实例是对CharFilter实例的完善。在CharFilter实例中,我们定义了四个全局变量,这不符合WDM驱动程序的要求,它限制了IRP的可重入性,我们应该使用局部变量。
该实例定义了一个READ_COMPLETION_INFO结构,当有DeviceControl 调用时,就分配一个结构对象,参数设置完后,就将该结构对象地址指针放在I.FileObject()-FsContext中。
WDM过滤器驱动程序的安装方式通常有两种,一是和功能驱动程序一块安装,二是单独安装。CharFilter实例演示了过滤器驱动程序和功能驱动程序同时安装的情况;CharFilter_Class实例演示了功能驱动程序安装之后,再单独安装过滤器驱动程序的情况。
3.CharSample实例
第2章的CharSample实例是本书最简单的一个实例。CharSample实例的功能是:应用程序从键盘接收一个数字,之后通过DeviceIoControl调用,把数字传递给驱动程序,由驱动程序将一个数字(0-9)转换成一个中文(零-九),再把结果返回给应用程序,由应用程序显示出来。
CharSample实例应用程序界面
注意:①CharSample和CharFilter实例不要同时安装。②当单独安装CharFilter_Class实例中的过滤器驱动程序时,请先安装CharSample实例。
4.CharSample_DDK实例
第14章的CharSample_DDK实例是DDK支持的的WDM驱动程序框架。对于生成的MFC应用程序,我没有作任何改动,仅提供了一个DOS界面的Win32 Console应用程序。
5.DMASample实例
第13章的DMASample实例演示了DMA编程的三个类函数的使用方法。DMA传输需要硬件设备的支持,即数据的传输是由硬件设备来完成的,由于条件的限制,并不是所有的读者都有PCI卡可调试。所以,这里设计了DMASample
原创力文档


文档评论(0)