Jennifer1981312
驱动牛犊
驱动牛犊
  • 注册日期2004-04-14
  • 最后登录2004-10-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1454回复:8

直接I/O

楼主#
更多 发布于:2004-06-19 09:59
《Windows WDM设备驱动程序开发指南》上对直接I/O是这么说的:“使用内存描述符表(MDL)速度要快一些,但这仅可用于执行直接内存访问(DMA)的硬件。”
对这句话我不是很理解,如果我要访问并口,可用direct方式吗?请大虾帮忙指点一下!
Jennifer1981312
驱动牛犊
驱动牛犊
  • 注册日期2004-04-14
  • 最后登录2004-10-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-06-20 16:51
不管多快了!我只想知道能不能用direct方式,你知道吗?
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-06-20 16:45
并口写数据本身就不快,
你要多快的速度?
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
Jennifer1981312
驱动牛犊
驱动牛犊
  • 注册日期2004-04-14
  • 最后登录2004-10-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-06-20 10:17
是呀!
你做过这方面的工作吗?能帮帮我吗?
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-06-19 23:48
哈哈,输入错误
这个本身是写端口的呀,你写并口驱动(至少是Filter驱动),怎么这样觉得效率不够吗?
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
Jennifer1981312
驱动牛犊
驱动牛犊
  • 注册日期2004-04-14
  • 最后登录2004-10-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-06-19 23:05
是并口,不是串口!向寄存器写数据的指令呀!KIoRange.oub()
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-06-19 22:49
你没有使用自己的串口驱动是吗?
你使用什么命令发送数据呢?
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
Jennifer1981312
驱动牛犊
驱动牛犊
  • 注册日期2004-04-14
  • 最后登录2004-10-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-06-19 22:40
楼上说的我不是很明白,我是想向端口发送大量的数据,可以用direct方式吗?
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-06-19 22:22
哈哈,还真没有注意这句话
direct方式是相对buffer方式而言的(当然还有nerther,就是前两者),这都是用在APP、Driver(或Driver间)通信时。
如果你直接访问LPT,具体使用什么方式不是由你决定的,理由是:
1、你没有写LPT驱动(除非你写LPT驱动替换系统的,这时你可选择)。
2、对LPT访问的Control Code系统已经定义好了,比如:FILE_DEVICE_PARALLEL_PORT,在ddk中定义为:
CTL_CODE(FILE_DEVICE_PARALLEL_PORT, 12, METHOD_BUFFERED, FILE_ANY_ACCESS),这说明你只能使用Buffer方式,当然这里的控制命令不是App直接和驱动通信用的。

所以我的答案是这需要看你发什么命令和是否由你完成LPT驱动而定。
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
游客

返回顶部