阅读:1937回复:7
使用DS3.1做的USB驱动,一用WriteFile/ReadFile就蓝屏,请教一下?
我用DS3.1驱动向导做的驱动,类型为USB,端点1和2均为Bulk,端点1 IN OUT缓冲均为16,端点2 IN OUT缓冲均为64,只处理读写请求、cleanup等常规请求,生成后,用VC6编译生成的*.sys文件,查找管道好像都没问题,但一对端点使用WriteFile或ReadFile操作就立马蓝屏然后电脑重起了,另外说一下,我用SoftICE跟踪进去也没发现什么问题啊,而且写入USB的数据个数也和我设定的一致,最后的完成例程的返回状态也是STATUS_SUCCESS,真是很奇怪,请教一下各位,怎么回事呢?
|
|
沙发#
发布于:2004-10-17 16:09
请问楼主,你的问题是怎么解决的啊!!
哈哈,希望你能看到这个帖子啊!!! |
|
板凳#
发布于:2004-10-21 20:19
在做驱动时不要使用new来分配内存,要使用malloc,并且切记释放内存,防止内存泄漏!
|
|
地板#
发布于:2004-10-27 15:37
谢谢楼主的建议,那么请问楼主,new 和malloc有什么区别吗??
而且我的程序具体是在 status = m_Endpoint2OUT.SubmitUrb(I, pUrb, LinkTo(WriteComplete), pCompInfo, 0); 重起的,帮忙处处主意呗!!! |
|
地下室#
发布于:2004-10-27 21:52
你看看你在用DW生成驱动框架的时候的一些配置与单片机对固件的配置是否一致,主要是端点1,应该搞成interrupt端点。构建URP时应该使用BuildInterruptTransfer
|
|
5楼#
发布于:2004-10-28 09:52
可是,楼主,现在我用端点2,批量传输啊!
|
|
6楼#
发布于:2004-10-28 12:50
我知道你用的端点2,但你前面的配置有没有问题,MaximumTransferSize对吗。按理说配置没有问题,DS生成的批传输函数就可以直接用的,我就是直接用的,如果再有问题,我也不知道了
|
|
7楼#
发布于:2004-10-29 10:43
谢谢楼主的热心指点!!!
我再继续查查吧,希望能找到错误啊! |
|