iamlbccc
驱动牛犊
驱动牛犊
  • 注册日期2012-09-25
  • 最后登录2012-12-04
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望11点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2222回复:2

开发的USB设备驱动程序,Win7上运行不稳,XP完全正常

楼主#
更多 发布于:2012-12-04 22:35
看了一个月《Windows驱动开发详解》,依照光盘17章BulkUsb的实例代码写了个USB设备驱动(实现让用户层自定义setup包,传给Driver,再发送出去)。
在Xp上能够100%正常工作。然后,使用wdk编译除win7版本,在Win7上大概有1/50的几率出错。

比如:在用户层构造一个GetDeviceDescriptor的setup包,大多数时候获取的数据都是对的。
(有一个现象是:如果高速的反复发送GetDeviceDescriptor,比间隔1s发送,错误率低很多。即,越慢越容易出错)

错误的位置大概是 IoCallDriver(deviceExtension->TopOfStackDeviceObject, irp)这个函数返回。由于win7上没法使用irpTrace,所以我也不确定。从log大概定位到这里。

我有这么几个问题:
> WDM驱动能在Win7上正常工作吗?我这个XP上正常的驱动,是否就应该能直接在win7上用.
(光盘17章的源程序有朋友在Win7上跑过吗)

> Win7上有什么类似irpTrace的工具吗.irpTracker我的win7上也不好用,老蓝屏.

> 上面提到的错误,我应该从什么方面着手检查?

> 有没有必要改用WDF重新实现,为了在Win7上使用.
天冰天降
驱动牛犊
驱动牛犊
  • 注册日期2007-08-01
  • 最后登录2015-11-13
  • 粉丝1
  • 关注1
  • 积分110分
  • 威望200点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2013-01-25 21:44
肯定是wdf的好,因为是调用微软的wdfcostall动态库。
驱网无线,快乐无限
gutian98
禁止发言
禁止发言
  • 注册日期2003-01-12
  • 最后登录2016-12-11
  • 粉丝4
  • 关注2
  • 积分760分
  • 威望8026点
  • 贡献值1点
  • 好评度364点
  • 原创分0分
  • 专家分21分
  • 金点子奖
  • 社区居民
板凳#
发布于:2013-07-30 15:14
用户被禁言,该主题自动屏蔽!
游客

返回顶部