superwangliwen
驱动小牛
驱动小牛
  • 注册日期2002-07-30
  • 最后登录2005-01-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1719回复:16

如何判断NAK,still或无返回值状态》?

楼主#
更多 发布于:2002-10-31 11:05
偶做USB。.DS的sys.VC的dll,VB的exe,程序运行也正常
只是,如果我的读写的过程中,设备出了问题或人为中断设备,
偶的VB应用程序就会死掉,原因可以是因为没有判断设备返回的nak,still等,
如果我要做这些判断的话,应该是在.sys呢,还是在dll呀?
大哥们帮忙!感激感激不尽!
Just remember my name : wing
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-10-31 11:19
你的程序没有办法知道这些!
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
superwangliwen
驱动小牛
驱动小牛
  • 注册日期2002-07-30
  • 最后登录2005-01-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-10-31 11:29
那我该用什么办法解决现在这个问题呢?
我的应用程序正在向设备写或接收设备数据,突然设备OVER了,应用程序如何能不使呀?
Just remember my name : wing
cpboy
驱动牛犊
驱动牛犊
  • 注册日期2001-09-04
  • 最后登录2004-06-24
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-10-31 14:15
我也有这样的问题,一次BULK传输没有完成,主机的应用程序会继续等待。如何让主机在一定时间之后,停止等待。是在驱动中完成么?有高手做过么?
欢迎讨论
cpboy
驱动牛犊
驱动牛犊
  • 注册日期2001-09-04
  • 最后登录2004-06-24
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-10-31 20:12
我看了Cypress的 EzMr 代码,好像没有什么不同的,调用通用驱程,为什么 EzMr 就可以在无响应的3秒后自动返回。不知道哪位分析过。 :mad:
欢迎讨论
SDK
SDK
驱动小牛
驱动小牛
  • 注册日期2001-03-23
  • 最后登录2007-11-26
  • 粉丝0
  • 关注0
  • 积分61分
  • 威望7点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-10-31 20:48
Hi:
   当然要在驱程中考虑这问题!
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-10-31 22:09
ds自己实现了一个定时器。
如果你用ddk,自己翻译一下。
详细的内容,去读一下KUsbLowerDevice::SubmitUrb的实现代码,把它读懂了,你就知道是怎么回事了!
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
superwangliwen
驱动小牛
驱动小牛
  • 注册日期2002-07-30
  • 最后登录2005-01-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-11-01 08:53
ds自己实现了一个定时器。
如果你用ddk,自己翻译一下。
详细的内容,去读一下KUsbLowerDevice::SubmitUrb的实现代码,把它读懂了,你就知道是怎么回事了!


那我该如何修改我的程序啊?DS生成的代码中也没包含这些呀!
Just remember my name : wing
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2002-11-01 10:27
很简单啊!SubmitUrb的最后一个参数就是超时啊!
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
superwangliwen
驱动小牛
驱动小牛
  • 注册日期2002-07-30
  • 最后登录2005-01-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2002-11-01 10:41
就是说把mSecTimeOut设一个值做为超时值?
可用DS生成的代码中没有这一部分啊?改DS带的.lib吗?





Just remember my name : wing
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2002-11-01 10:48
faint!

既然用了submit,当然会有啦!没有写在上面,说明是用了缺省值:NULL,这是C++的特性啊!
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
superwangliwen
驱动小牛
驱动小牛
  • 注册日期2002-07-30
  • 最后登录2005-01-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2002-11-01 11:26
faint!

既然用了submit,当然会有啦!没有写在上面,说明是用了缺省值:NULL,这是C++的特性啊!

???????

什么呀??
问题是在DS生成的代码中,我都没看到过KUsbLowerDevice::SubmitURb,这东东在哪啊???
Just remember my name : wing
superwangliwen
驱动小牛
驱动小牛
  • 注册日期2002-07-30
  • 最后登录2005-01-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2002-11-01 12:13
明白了,呵呵,谢谢 斑竹大人
Just remember my name : wing
superwangliwen
驱动小牛
驱动小牛
  • 注册日期2002-07-30
  • 最后登录2005-01-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2002-11-01 13:54
是KUsbPipe::SubmitUrb吧
Just remember my name : wing
superwangliwen
驱动小牛
驱动小牛
  • 注册日期2002-07-30
  • 最后登录2005-01-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2002-11-01 13:55
是KUsbPipe::SubmitUrb吧!
Just remember my name : wing
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2002-11-01 22:21
你自己用的是哪个,就看哪个啊!

小伙子,这种简单问题,自己稍微研究一下嘛!你自己打字不觉得累么?
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
superwangliwen
驱动小牛
驱动小牛
  • 注册日期2002-07-30
  • 最后登录2005-01-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2002-11-02 09:02
不累不累,呵呵 打几个字有什么累的。

 DS生成的代码是:
    // Submit the URB to our USB device
NTSTATUS status;
status = requestpipe.SubmitUrb(I, pUrb, LinkTo(ReadComplete), pCompInfo, 0);
return status;

按您说的,偶改成了:
    // Submit the URB to our USB device
NTSTATUS status;
status = requestpipe.SubmitUrb(I, pUrb, LinkTo(ReadComplete), pCompInfo, 10);
return status;

也就是把mSecTimeOut改成了10毫秒,可是。。。。不管用呀!通信过程中要是把设备关掉了的话,程序照死~~何哉?!
 :(
Just remember my name : wing
游客

返回顶部