|
[讨论帖]USB驱动中ISO传输出现的问题讨论
[复制链接]
大家好!
这是我在做Windows USB驱动时遇到的一个问题。
USB驱动主要是用来进行ISO传输,我在Start例程中就开始建立一组IRP,用来循环读取下层上来的数据,并存入一个FIFO队列;而当上层应用程序需要数据时,驱动层只是从FIFO中读取,并不把应用层的IRP往下传。
然后在应用层测试程序中开始循环读取数据,在应用层的调试中,我发现调用ReadFile这个API的时间会比较大,一般传输64个字节的数据,这个API需要16ms时间才能返回,明显,这个时间差不可接受,因为我的ISO传输的实时性要求很强。
所以,我就猜想,是不是因为我一直循环在发送IRP,导致这个时间被拉长了呢?于是,我在DeviceControl中添加了一个CODE,用来指示启动IRP循环,而在Start例程中不再建立IRP。可是,我发现,应用程序调用ReadFile这个API的时间依旧没有减少,那会是什么原因呢?
烦请遇到过类似的大大留个话,讨论讨论!
相谈甚欢之余,即可赠分,以为答谢之礼。
|
|