阅读:1367回复:6
求教管理员USB驱动死机问题
各位大侠:
我做了一个USB驱动,进行的是块传输。 部分代码: PURB pUrb = m_Endpoint6IN.BuildBulkTransfer( pBuffer, // Where is data coming from? dwTotalSize, // How much data to read? TRUE, // direction (TRUE = IN) NULL, // Link to next URB TRUE // Allow a short transfer ); if (pUrb == NULL) { I.Information() = 0; return I.PnpComplete(this, STATUS_INSUFFICIENT_RESOURCES); } // Submit the URB to our USB device status = m_Endpoint6IN.SubmitUrb(pUrb, NULL, NULL, 500); 当我进行2048×1536大小的数据读取时候,可以实现 当我进行2560x1920大小读取时候,出现死机现象 大家帮帮忙 谢谢 |
|
沙发#
发布于:2008-08-25 14:30
怎么理解你所说的"死机"? 是蓝屏了,还是没有反应?
|
|
|
板凳#
发布于:2008-08-25 14:58
bulk传输一次最大3344k, 多创建几个urb吧
|
|
|
地板#
发布于:2008-08-25 15:01
参见http://support.microsoft.com/kb/832430/en
Transfer Type MaximumTransferSize Error Reported Control Endpoint 0 4 KB USBD_STATUS_INVALID_PARAMETER Control (Other Endpoints) 64 KB Bugcheck 0xFE Interrupt Unlimited None UHCI Bulk Unlimited None OHCI Bulk 256K Bugcheck 0xFE EHCI Bulk 3344K Bugcheck 0xFE |
|
|
地下室#
发布于:2008-08-25 19:53
我的死机是系统直接重新启动,
driverbuild,每次都得到你的帮助,这是第二次了 谢谢您, 您所讲的多创建几个urb 是怎么样的呢 比如创建了2个URB, 是不是把原来一个URB传输大小分成两个呢 两个URB的目的地址pBuffer是不是需要这样(一个pBuffer,另一个pBuffer+偏移量) 那SubmitUrb针对这两个URB也要发送两次了 谢谢谢谢 |
|
5楼#
发布于:2008-08-26 07:46
引用第4楼tqijin于2008-08-25 21:53发表的 : 说明代码里面有bug,连上WinDbg看一下 |
|
|
6楼#
发布于:2008-08-26 08:18
rayyang2000 谢谢你,
友可能 不过其他小分辨率数据的都可以 按照driverbuild 说的试一试 同样也谢谢你 |
|