jfory
驱动小牛
驱动小牛
  • 注册日期2002-05-14
  • 最后登录2003-06-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1125回复:8

这是为什么,斑主?

楼主#
更多 发布于:2002-11-25 18:12
我用DS 做了一个简单的USB驱动,代码如下,可以发送成功,但是
在重新插拔设备后,机子就会重启.
------------------------------
PURB pUrb=m_Lower.BuildClassRequest(
pBuffer,          // TransferBufferMDL
8,        // TransferBufferLength=dwTotalSize
0, // RequestTypeReservedBits=0
0x09, //Request =0x09 just for the dog set_port
0x0200, //Value =0x0200,for Unknow reason
FALSE, //BOOLEAN FALSE from the host to device
//BOOLEAN bShortOk=FALSE
NULL, //PURB Link=NULL
0, //UCHAR Index=0
URB_FUNCTION_CLASS_DEVICE, //USHORT Function=URB_FUNCTION_CLASS_DEVICE
NULL //PURB Link=NULL
);

    // Submit the URB to our USB device
if ( pUrb != NULL)
{
   // Submit the URB to our USB device, synchronously - say less is OK
// pUrb->UrbBulkOrInterruptTransfer.TransferFlags =
// (USBD_TRANSFER_DIRECTION_IN | USBD_SHORT_TRANSFER_OK);//这一句十重要,

        status = m_Lower.SubmitUrb(pUrb,NULL,NULL,5000);

------------------------------
lyg
lyg
驱动牛犊
驱动牛犊
  • 注册日期2001-04-02
  • 最后登录2007-08-21
  • 粉丝0
  • 关注0
  • 积分12分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-11-28 09:11
最好是用SoftIce跟踪一下,这样就可以知道是哪以行代码出错了。
以前我在W2000下面调过驱动程序,也是一旦重新插把就重新启动,后来发现是一个Debug编译环境的ASSERT语句出现问题。
jfory
驱动小牛
驱动小牛
  • 注册日期2002-05-14
  • 最后登录2003-06-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-11-27 15:48
我现在设备是HID类的所以我必须用这种请求,
用这个做稳定后再定义自己的请求!
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-11-27 15:05
我从来不用class request!
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
jfory
驱动小牛
驱动小牛
  • 注册日期2002-05-14
  • 最后登录2003-06-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-11-26 11:45
斑主若有兴趣可以将上面的代码放在生成的工程中,
,你执行你测试程序一次,再执行一次,
就会发现第二不能成功执行写打操作。
且在重新插拔后机器就会重启!
我的设备的零端点最大可以接收8个字节的数据。
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-11-26 11:25
那你最少也应该把这个参数写上啊!否则编译的时候,就用另外一个形式的函数来编译了。
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
jfory
驱动小牛
驱动小牛
  • 注册日期2002-05-14
  • 最后登录2003-06-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-11-26 11:15
谢谢你斑主,问题不在这儿,用了这个参数就不会发送成功。
我正在找。。。
我发现用DS不如用DDK来的直观。 
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-11-25 23:21
//BOOLEAN bShortOk=FALSE
这行好像没有写参数嘛!
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2002-11-25 23:19
1. SubmitUrb之后,有没有delete pUrb
2. 可能别的地方有问题。
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
游客

返回顶部