开发的USB设备驱动程序,Win7上运作不稳,XP完全正常
开发的USB设备驱动程序,Win7上运行不稳,XP完全正常
看了一个月《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上使用.
------解决方案--------------------
WIN7下编译的WDM肯定能在win7下跑,不需要wdf吧~
另外win7下调试还是要windbg啊,softice不是xp后就不支持了么
------解决方案--------------------
1. builkusb应该是WDK里面的例子,你可以看看最新的WDK里面有没有该例子,看看该例子和书本提供的例子有什么区别。
2.1/50的几率出错--是什么样的错误啊?
3.正如楼上说的WDM驱动在win7下支持没问题,不需要用wdf。
看了一个月《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上使用.
------解决方案--------------------
WIN7下编译的WDM肯定能在win7下跑,不需要wdf吧~
另外win7下调试还是要windbg啊,softice不是xp后就不支持了么
------解决方案--------------------
1. builkusb应该是WDK里面的例子,你可以看看最新的WDK里面有没有该例子,看看该例子和书本提供的例子有什么区别。
2.1/50的几率出错--是什么样的错误啊?
3.正如楼上说的WDM驱动在win7下支持没问题,不需要用wdf。