第11章Windows环境下输入输出程序设计.ppt

第11章Windows环境下输入输出程序设计.ppt

  1. 1、本文档共54页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2. DeviceIoControl函数调用 DeviceIoControl ( HANDLE hDevice, //设备句柄 DWORD dwIoControlCode, //控制代码 LPVOID lpInBuffer, //输入数据块指针 DWORD nInBufferSize, //输入数据块大小 LPVOID lpOutBuffer, //输出数据块指针 DWORD nOutBufferSize, //输出数据块大小 LPDWORD lpBytesReturned, //返回字节长度指针 NULL //同步时为NULL ) 第三十一页,共五十四页。 DeviceIoControl函数调用参数 hDevice是由CreateFile函数获取的设备句柄。dwIOControlCode是应用程序向WDM驱动程序发出的控制代码。 lpInBuffer和nInBufferSize是应用程序向WDM驱动程序传送的I/O数据块的地址及大小。 lpOutBuffer、nOutBufferSize和lpBytesReturned是WDM驱动程序返回给应用程序的数据块的地址、大小以及实际返回的字节数。 输入/输出缓冲区的格式由驱动程序自行规定。 第三十二页,共五十四页。 3. 关闭设备 完成对设备的输入、输出控制后, 应用程序调用CloseHandle(hDevice)关闭设备。 第三十三页,共五十四页。 4. ReadFile和WriteFile函数 ReadFile ( HANDLE hFile, //设备句柄 LPVOID lpBuffer, //输入数据块指针 DWORD nNumberOfBytesToRead,//输入数据块大小 LPDWORD lpNumberOfBytesRead, //返回的字节数长度指针 NULL ) //同步时为NULL WriteFile ( HANDLE hFile, //设备句柄 LPVOID lpBuffer, //输出数据块指针 DWORD nNumberOfBytesToWrite,//输出数据块大小 LPDWORD lpNumberOfBytesWritten, //实际输出的字节数长度指针 NULL ) //同步时为NULL 第三十四页,共五十四页。 本节以Aedk-LabPCI计算机接口实验仪为例,介绍WDM驱动程序的使用。 该实验设备由一块PCI接口卡和一台接口实验仪组成,将PCI接口卡插入PC机的PCI总线插槽,用连接线把PCI卡和实验机相连接,整个实验仪就成为PC机的一台“外部设备”。在监控软件的控制下,进行PC机与实验仪的通讯,实现对实验过程的全程控制。 PCI卡采用了PLX公司的PCI9052芯片作为接口芯片。 11.3.2 Windows2000/XP下输入输出举例 第三十五页,共五十四页。 进行硬件连接之后,需要安装驱动程序,在Win2000中也就是安装WDM驱动程序。 在实验设备所附带的软件中,驱动程序文件有两个: INF文件,称为设备信息文件 ,供驱动程序安装时使用。INF文件指明了硬件驱动该如何安装到系统中,源文件在哪里、安装到哪一个文件夹中、怎样在注册表中加入与设备有关的信息等; 后缀为sys的文件,是整个实验仪的驱动程序。 一般情况下,INF文件会被复制到Windows2000系统目录中的INF子目录中,Sys文件被复制到System32/drivers子目录中。 第三十六页,共五十四页。 安装驱动程序后,在设备管理器中可以看到相应的设备 第三十七页,共五十四页。 //设备的头文件 // 8255Demo.h // 控制码 #define IOCTL_PCI_CON // 读配置信息 CTL_CODE(, 0x800, METHOD_BUFFERED, ) #define IOCTL_IO_READ // IO读 CTL_CODE(, 0x801, METHOD_BUFFERED, ) #define IOCTL_IO_WRITE // IO写 CTL_CODE(, 0x802, METHOD_BUFFERED, ) 第三十八页,共五十四页。 //设备的头文件 //PCI卡配置信息 struct pci_cfg { ULONG MemBase[2]; //

文档评论(0)

虾虾教育 + 关注
官方认证
内容提供者

有问题请私信!谢谢啦 资料均为网络收集与整理,收费仅为整理费用,如有侵权,请私信,立马删除

版权声明书
用户编号:8012026075000021
认证主体重庆皮皮猪科技有限公司
IP属地重庆
统一社会信用代码/组织机构代码
91500113MA61PRPQ02

1亿VIP精品文档

相关文档