- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验三 驱动程序结构实验
【实验目的】
1、了解驱动程序的原理和功能;
2、掌握流式接口驱动程序的结构;
3、掌握编写流式接口的驱动程序的方法
4、熟悉EVC和VS.Net的开发环境;
【实验仪器】
1、装有Platform Builder、EVC和VS.Net开发平台的PC机一台
2、XSBase270实验开发平台一套
【实验原理】
1、流式接口驱动程序简介
驱动程序是对底层硬件的抽象。应用程序开发者不需要真正理解底层驱动的工作原理,他们只需要通过Windows CE提供的API函数,就可以直接与硬件进行交互。
WinCE的流式接口驱动程序以动态链接库的形式存在,由设备管理器(通常是device.exe或者gwes.exe)统一加载、管理和卸载。与具有单独目的的内部设备驱动程序相比,所有流式接口驱动程序都是用同一接口并调用同一个函数集。
每个流式接口驱动程序必须实现一组标准的函数,用来完成标准的文件I/O函数和电源管理函数,这些函数提供给WinCE操作系统的内核使用。这些函数通常叫做流式接口驱动程序的DLL接口,如表3-1所示:
表3-1 流式接口驱动程序要实现的DLL接口:
函数名称 描述 XXX_Close 在驱动程序关闭时应用程序通过CloseHandle函数调用这个函数 XXX_Deinit 当设备管理器卸载一个驱动程序时调用这个函数 XXX_Init 当设备管理器初始化一个具体设备时调用这个函数. XXX_IOControl 上层的软件通过DeviceIoControl函数可以调用这个函数 XXX_Open 在打开一个设备驱动程序时应用程序通过CreateFile函数调用这个函数 XXX_PowerDown 在系统调用前调用这个函数 XXX_PowerUp 在系统从新启动前调用这个函数 XXX_Read 在一个设备驱动程序处于打开状态时由应用程序通过ReadFile函数调用 XXX_Seek 对设备的数据指针进行操作,由应用程序通过SetFilePointer函数调用 XXX_Write 在一个设备驱动程序处于打开状态时由应用程序通过WriteFile函数调用. 在实际开发中接口名称中的XXX三个字母由设备驱动的设备名前缀代替,例如,如果一个流式接口驱动程序的设备文件名前缀为“STR”,那么它相应要实现的DLL接口为STR_Close,STR_Deinit,STR_Init,STR_Read等。
下面介绍几个主要的流式接口驱动接口函数:
(1)、DWORD XXX_Open ( DWORD hDeviceContext,
DWORD AccessCode,
DWORD ShareMode )
参数:DWORD hDeviceContext,设备驱动的句柄,由XXX_Init函数创建式返回;
DWORD AccessCode,传给驱动程序使用的地址,这个地址跟读和写有关;
DWORD ShareMode,共享模式,
返回值:返回驱动程序引用实例句柄。
描述:这个函数用于打开一个设备驱动程序,当应用程序准备对某个设备进行读或写操作时,系统必须先执行CreateFile()这个函数用于打开这个设备,这个函数执行后才能执行读和写操作;
(2)、BOOL XXX_Close(DWORD hOpenContext)
参数:DWORD hOpenContext,设备驱动的句柄,由XXX_Open创建。
返回值:调用成功返回TRUE,失败返回FALSE
描述:这个函数用于关闭一个驱动程序的引用实例,应用程序通过CloseHandle()函数来调用这个函数,当执行完这个函数后,hOpenContext将不再有效;
(3)、DWORD XXX_Read( DWORD hOpenContext,
LPVOID pBuffer,
DWORD Count)
参数:DWORD hOpenContext,由CreateFile()函数返回的句柄;
LPVOID pBuffer,一个缓冲区地址,用于从驱动读数据;
DWORD Count,需要读缓冲区的长度
返回值:实际读缓冲区的长度
描述:当一个流式接口驱动程序已经打开后,可以使用ReadFile()函数对这个设备进行读操作。ReadFile()中的hFile参数对应设备的引用实例句柄hOpenContext,二参数lpBuffer将传给pBuffer,用于表示要读缓冲区的地址,参数nNumberOfByteToRead将
您可能关注的文档
- 如__何_的_成__为__亿__富__翁.doc
- 如何处理工的作与学习的关系.ppt
- 如何创造性的解决问题.doc
- 如何促进经的济发展.ppt
- 如何地再现的客观世界 教案.doc
- 如何高效进的行八年级生物会考复习黄胜波.doc
- 如何让PP的T和音乐合二为一.doc
- 如何使用幻的灯片制作工具.doc
- 如何想活动的标题.ppt
- 如何写好策的划方案.doc
- 002649_2024_#ESG_博彦科技_2024年度环境、社会及公司治理(ESG)报告_2025-04-26.pdf
- 300021_2024_#SD_大禹节水_2024年度可持续发展报告-中文版_2025-04-23.pdf
- 002340_2024_#SD_格林美_2024年可持续发展报告_2025-04-26.pdf
- 002368_2024_#ESG_太极股份_2024年度环境、社会及公司治理报告_2025-04-02.pdf
- 002554_2024_#ESG_惠博普_2024年度环境、社会及治理(ESG)报告_2025-04-29.pdf
- 002268_2024_#ESG_电科网安_2024年电科网安ESG报告_2025-04-29.pdf
- 002484_2024_#ESG_江海股份_南通江海电容器股份有限公司2024年ESG报告_2025-04-08.pdf
- 300109_2024_#ESG_新开源_2024年度环境、社会和治理ESG报告(中文版)_2025-04-19.pdf
- 300173_2024_#ESG_福能东方_2024年度ESG报告_2025-04-26.pdf
- 003002_2024_#SD_壶化股份_2024年可持续发展报告_2025-04-25.pdf
最近下载
- 湖北省交投集团十四五规划.docx VIP
- 屋面防水找坡层施工方案.docx VIP
- 第三章 消费税-网校习题.doc VIP
- D-Z-T 0203-2020 矿产地质勘查规范 稀有金属类(正式版).docx VIP
- 粤教版高中物理必修第一册课后习题 第2章 匀变速直线运动 分层作业12 匀变速直线运动与汽车安全行驶.doc VIP
- 国家注册土木工程师(水利水电工程)试题汇总含历年真题.pdf VIP
- ISO37001-2016反贿赂管理体系手册与全套程序文件汇编.docx
- 风暖式PTC加热器技术要求 .pdf VIP
- 气缸选型-最终课件.ppt VIP
- scl-90-专业心理测试量表.pdf VIP
文档评论(0)