阅读:1787回复:5
有人看懂cypress控制面板源程序EzMr吗?
程序有点复杂,有地方看不明白,还望高手指点一二。
在USB端没有数据的情况下,若在控制面板上点了收BULK 数据,则此时有一个任务悬挂,待USB有数据后自动读出数据。针对这个要求,EzMr是怎么来实现的? 在执行success=DeviceIoControl(handle, IOCTL_EZUSB_BULK_READ, &bulkControl, sizeof(BULK_TRANSFER_CONTROL), inBuffer, inPacketSize, &nBytes, NULL); 若此时设备端并无数据,则此时success=1还是=0? |
|
沙发#
发布于:2008-08-15 12:01
和想和楼主 dingdang好好交流,能否留下EMALL或者QQ号码,这样交流更方便,我的是qige729@163.com
|
|
|
板凳#
发布于:2004-07-15 13:58
我觉得挺奇怪的。因为它的deviceiocontrol用的是同步调用方式,按理说只要有一个请求悬挂在那里,就无法再进行任何deviceiocontrol操作,但事实上是若有读悬挂在那里,则可进行写操作(这是我试过的)。
无法再进行读操作了,但写操作我没试过。 |
|
地板#
发布于:2004-07-15 09:14
无法再进行读操作了,但写操作我没试过。
|
|
地下室#
发布于:2004-07-14 19:07
那如果读deviceiocontrol一直悬挂在那里,岂不是无法进行写操作了?
但是在控制面板上操作时,此时可以写数据。 会一直等待不返回 |
|
5楼#
发布于:2004-07-14 16:17
会一直等待不返回
直到发生下面的情况: 1,设备返回数据 2,拔掉USB电缆:) 因为cy的驱动是用同步方实现的,如果用异步方式,那么会返回0,用getlasterror会获得STATUS_PENDING。 |
|