slide7_流接口驱动程序设计.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
slide7_流接口驱动程序设计

Windows CE 5.0驱动模型的分类 Windows CE5.0驱动程序的系统结构 流接口驱动程序的编写方法 最简单的流接口驱动程序 Windows CE 5.0驱动模型的分类 Windows CE 5.0驱动模型分为4类 专用于WindowsCE模型 本机设备驱动程序 流接口驱动程序 来自其他操作系统 通用串行总线USB驱动程序 网络驱动接口规范(NDIS)驱动程序 本机设备驱动程序 专用于Windows CE。 平台建立时必须提供的设备驱动程序 如LED驱动和电源驱动 这些驱动是GWES(图形窗口和事件系统)的一部分 它们的驱动程序文件不是*.dll而是*.lib 流接口驱动程序: 这类驱动具有定制的接口,是一般类型的设备驱动程序。 驱动程序文件一般表现为*.dll 驱动程序的函数实现一组固定的流接口函数 流接口函数使得应用程序可以通过文件系统访问这些驱动程序 流接口驱动程序是接口固定、最常用的驱动程序 Windows CE 5.0驱动程序的系统结构 PB(Platform Builder)提供的样本 为了使开发人员能够快速开发自己的驱动程序,PB提供了一些驱动程序样本 开发人员可以通过修改样本驱动程序,轻松编写自己的设备驱动程序 样本驱动程序目录: %WINCEROOT%\PUBLIC\COMMON\OAK\DRIVERS,其中%WINCEROOT%表示WinCE在pc机的安装目录 PB样本驱动分类: 单片(monolithic)驱动程序: 基于单个码片,该码片直接把硬件设备的功能传递给操作系统 分层(layered)驱动程序 有两个设置好的层组成 上层是模型设备驱动程序(Model Device Driver,MDD) 下层是依赖平台的驱动程序(Platform Depentment Driver, PDD) 流接口驱动程序的编写方法 流接口驱动程序与操作系统和硬件的关系 流接口驱动程序由设备管理器(Device Manager)统一加载、管理和卸载 应用程序(application)使用WinCE操作系统的文件API函数和流接口进行通信,从而达到应用程序访问驱动程序及操作硬件的目的。 流接口驱动程序具有固定的入口点函数与流接口驱动进行通信 流接口驱动程序的入口点函数 每个流接口驱动程序必须实现一组标准函数,用来完成标准的文件I/O函数和电源管理函数,这些函数提供给Windows CE5.0操作系统的内核使用 由于流接口驱动程序经过编译以后,最终生成的驱动程序文件为dll文件,所以这些函数通常叫做流驱动程序的dll接口 XXX_Open函数: 此函数用于打开一个设备驱动程序 当应用程序准备对某个设备进行读或写的操作时,应用程序必须先执行CreatFile函数用于打开此设备(执行时调用函数XXX_Open)。 此函数执行了以后,系统才能够执行读写操作。 XXX_Close函数 该函数用于关闭一个驱动程序的引用实例。 应用程序通过CloseHandle()来调用该函数 当执行完该函数,驱动程序引用的实例hOpenContext将不再有效 XXX_Init函数 当用户开始使用一个设备的时候,如PC卡初始化时,设备管理器调用该函数初始化PC卡设备。 该函数并不由应用程序直接调用,而是通过设备管理器提供的ActivateDeviceEx函数调用的。 函数执行后,如果成功则返回一个设备句柄 该句柄也是XXX_Open函数入口参数hDeviceContext的取值 XXX_Deinit函数 当用户需要卸载一个驱动程序时,设备管理器调用该函数。 应用程序不能够直接调用,由设备管理器通过DeactivateDeviceEx函数调用该函数。 XXX_Read函数 该函数与读文件函数ReadFile相似 当一个流接口程序程序被打开后,可以ReadFile函数对该设备进行读操作。 ReadFile中的hFile参数就是该设备的引用实例句柄hOpenContext; 参数lpBuffer传递给pBuffer,用于表示读缓冲区地址; 参数nNumberOfBytesToRead传递给Count,用于表示读缓冲区的长度。 XXX_Write函数 当一个流接口程序程序被打开后,可以通过WriteFile函数对该设备进行写操作。 WriteFile函数调用该函数对设备进行写操作 XXX_IOControl函数 该函数通常用于向设备发送一个命令。 应用程序使用DeviceIOControl函数来通知操作系统调用该函数。 通过参数dwCode来通知驱动程序要执行的操作。 该函数扩展了流接口驱动程序的功能。 另外,用户可以通过更改HKEY_LOCAL_MACHINE \Drivers\BuiltIn\MyDevice

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档