阅读:2712回复:2
[求分析帝]Hidd_GetFeature操作系统死机
简单来说,
执行如下代码 for(int i=0;i<100;i++) { ret = HidD_SetFeature(hDev,inputBuff,length); while (!ret) { ret = HidD_GetFeature(hDev,outputBuff,length); } } 执行期间拔出设备,操作系统会直接死掉,不是蓝屏,像是内核跑死了。 但单步调试时执行到 HidD_GetFeature函数拔出设备也不会死,全速跑的时候一把设备基本就挂了。 手里有别人做得相同功能的软件,但没有源码,同样的设备别人的不会死,Bus Hound从数据上也未见异常。 有没有高人遇到过这种问题?怎么处理或规避? |
|
沙发#
发布于:2010-04-07 16:32
用户被禁言,该主题自动屏蔽! |
|
板凳#
发布于:2010-04-08 09:53
终于有人回了,激动....
PS:一种加密设备,走的是HID协议固件交互用的SetFeature,产品需要往里下载一些必要的程序。 主要是别人做的工具跑的过程中拔出设备不死,我做的工具开始交互的时候拔出就死。在HidD_GetFeature的后面加过一个Sleep(100),这样在操作虽然不会死,但下载速度也也随之降下来了,没有意义。 大家在用HidD_Get/SetFeature的时候都有没有什么保护措施? |
|