阅读:1454回复:8
直接I/O
《Windows WDM设备驱动程序开发指南》上对直接I/O是这么说的:“使用内存描述符表(MDL)速度要快一些,但这仅可用于执行直接内存访问(DMA)的硬件。”
对这句话我不是很理解,如果我要访问并口,可用direct方式吗?请大虾帮忙指点一下! |
|
沙发#
发布于:2004-06-20 16:51
不管多快了!我只想知道能不能用direct方式,你知道吗?
|
|
板凳#
发布于:2004-06-20 16:45
并口写数据本身就不快,
你要多快的速度? |
|
|
地板#
发布于:2004-06-20 10:17
是呀!
你做过这方面的工作吗?能帮帮我吗? |
|
地下室#
发布于:2004-06-19 23:48
哈哈,输入错误
这个本身是写端口的呀,你写并口驱动(至少是Filter驱动),怎么这样觉得效率不够吗? |
|
|
5楼#
发布于:2004-06-19 23:05
是并口,不是串口!向寄存器写数据的指令呀!KIoRange.oub()
|
|
6楼#
发布于:2004-06-19 22:49
你没有使用自己的串口驱动是吗?
你使用什么命令发送数据呢? |
|
|
7楼#
发布于:2004-06-19 22:40
楼上说的我不是很明白,我是想向端口发送大量的数据,可以用direct方式吗?
|
|
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驱动而定。 |
|
|