阅读:2005回复:11
紧急求助:关于应用程序收发数据的问题
各位大侠来帮我想一下
应用程序在利用devicoiiocontrol()与外设进行通信时,如果此时应用程序利用该函数发了读数据的请求但是外设又没有将数据准备好,此时USB总线是否就一直等在那里?若应用程序想把刚才没有完成的读操作取消掉,该用什么方法?我试了用closehandle,发现不行。 |
|
沙发#
发布于:2004-10-14 19:13
是的,读不出来数据 就一直等,直至超时,函数才返回
所以 要修改接收数据流程,可以是外设准备好数据后通知主机来取。 |
|
|
板凳#
发布于:2004-10-14 19:42
但是根据USB协议,主机端的USB总线一直在轮询,所有的命令都由主机端发起的。外设准备好数据后怎么通知主机呢?
是的,读不出来数据 就一直等,直至超时,函数才返回 |
|
地板#
发布于:2004-10-14 19:48
如果在总线上的读操作没有完成后,我再调用deviceiocontrol进行写操作,此时写能成功。但等待的那个读操作在设备端有数据时还是无法返回数据,不知道这是什么原因。
|
|
地下室#
发布于:2004-10-15 08:02
请问xjLegend,该如何实现“外设准备好数据后通知主机来取”,请不吝赐教!!!
|
|
|
5楼#
发布于:2004-10-15 12:25
devicoiiocontrol()可以在两种方式下工作,同步和异步,须和
驱动配合,同步时要等驱动程序完成全部操作才返回,异步时可以 返回未完成,但不是失败。 |
|
6楼#
发布于:2004-10-15 14:04
请问如果我的读操作由于设备端没有数据而等待在那里,此时应用程序继续进行其他写操作,若之后设备端有了数据,该怎么让上次等待在那里的读操作继续完成?
|
|
7楼#
发布于:2004-10-15 17:32
请问dingdang,你使用devicoiiocontrol()时需要客户驱动程序辅助吗?
|
|
|
8楼#
发布于:2004-10-15 18:02
用的和系统自带的驱动
请问dingdang,你使用devicoiiocontrol()时需要客户驱动程序辅助吗? |
|
9楼#
发布于:2004-10-16 01:18
可以用事件通知。即ioctl先向驱动传送一个事件。
或者用应用程序的异步通知。对驱动而言,需要做一个IO pending了。 |
|
10楼#
发布于:2004-10-16 09:37
这些应该怎么做呢,我一点头绪都没有
可以用事件通知。即ioctl先向驱动传送一个事件。 |
|
11楼#
发布于:2004-10-29 10:17
请问dingdang,使用devicoiiocontrol()跟系统自带的驱动配合可以控制usb设备的电源状态吗???
|
|