阅读:3447回复:4
USB驱动程序中接受到数据但应用程序接收的数据全部为零,如何调试?
USB驱动程序中接受到数据但应用程序接收的数据全部为零,如何调试?
实际情况如下: 有一设备通过USB与主机通信。在主机上有该设备的USB驱动程序和实际应用程序: 驱动程序: 驱动程序提供Read和Write函数接口,并有OnReadWriteComplete函数,该函数在读写操作完成后调用。 在主机应用程序: 通过CreateFile,ReadFile,WaitForMultipleObjects,GetOverlappedResult接收USB数据。 目前问题: 大部分时候USB通信正常,主机应用程序接受到的数据与OnReadWriteComplete中打印(调试状态打印)的数据一直,到那时有时候在OnReadWriteComplete打印出正常的数据(与设备端发送的数据完全一致),但是在主机应用程序中接收不到正确的数据,在GetOverlappedResult函数中返回了正确的数据长度,但是接受数据全部为零。 觉得目前的问题是驱动程序和应用程序之间的交换出了问题,但是 CreateFile,ReadFile,WaitForMultipleObjects,GetOverlappedResult 都是kernel32.dll中的函数,如何进行调试这些函数? 或者那位大侠有不同的见解,3x |
|
沙发#
发布于:2009-05-26 16:41
我觉得在驱动程序和应用程序应该没有问题,否则你在应用程序不可能接受到一次正确的数据,我认为错误在应用程序的编写上.比如同步问题,多线程时的同步问题.可能会导致你所说的错误.是本人的观点,请参考.
|
|
板凳#
发布于:2009-06-05 12:21
俺用的是周立功的D12,也收不到数据,还望给点建议。。
|
|
地板#
发布于:2010-04-09 16:09
顶个啊,好
|
|
地下室#
发布于:2010-04-26 21:30
缓冲模式的问题?
|
|
|