阅读:2028回复:12
hid应用程序读操作导致程序被堵塞
我的app用writefile写,用readfile读,会很偶然地在readfile出被堵塞.我也尝试采用异步读操作,不过没有效果.也许是自己理解不深.希望有经验的,站出来指导一下:)
|
|
沙发#
发布于:2004-09-01 14:53
反复尝试用ReadFileEx也没成功.一直就卡在这个点上,一直不能完成任务. :(
|
|
板凳#
发布于:2004-09-01 15:26
:o期待各位关注一下
|
|
地板#
发布于:2004-09-01 15:29
采用中断或BULK方式 如果上下配合不好,是有可能出现这个问题的。
|
|
|
地下室#
发布于:2004-09-01 15:49
我这里只是在app层读写hid设备,因此我想只能从异步方面考虑解决问题.只是我也反复尝试也没成功,期盼高手指点
|
|
5楼#
发布于:2004-09-01 16:17
异步或超时机制 如果驱动不支持 是不管用的。你用的是什么USB芯片?
|
|
|
6楼#
发布于:2004-09-01 17:46
用的芯片是CM109的,支持异步或超时吗
|
|
7楼#
发布于:2004-09-01 17:49
非常感激xjLegend的支持 ;)
|
|
8楼#
发布于:2004-09-01 17:54
我的app主要是通过writefile, readfile扫描hid类型的web phone的键盘按键
|
|
9楼#
发布于:2004-09-01 18:05
开一个线程来读写数据,加入OVERLAP方式,应该管用
|
|
|
10楼#
发布于:2004-09-01 18:22
我用多媒体定时器,结果也被堵塞啦.
HANDLE hUsbDev = CreateFile(deviceInterfaceDetailData->DevicePath, GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ|FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL|FILE_FLAG_OVERLAPPED, NULL); OVERLAPPED ol; memset(&ol, 0, sizeof(OVERLAPPED)); ol.hEvent = CreateEvent(NULL,FALSE,FALSE,NULL); dwLen = 0; BOOL bRet = ReadFile(pHid->hDev, pData, 10, &dwLen, &ol); if( WaitForSingleObject(ol.hEvent, 5) == WAIT_OBJECT_0) ProcessVolumekey(*pHid, pData[1]); |
|
11楼#
发布于:2004-09-01 18:25
就差这一点点问题没解决, 时间一点一点地滑过,头都大啦 :(
|
|
12楼#
发布于:2004-09-02 08:11
大家上午好!在线等候大家
|
|