WDM driver in VISTA - different observation w.r.t different Host controller machines

Hi

I have a WDM driver with functionality of "receiving 0X96000 bytes
from the USB Device ". ( The MaxPacketSize is 512 bytes and the
MaximumTranferSize is 0x400000 bytes in the bulk pipe that I am using. ).

In windows 2000/WindowsXP
I am getting the complete data (0x96000 bytes ) from the device, each
time I read the data from it.

However if I install the windows VISTA on the same machine and try to
use the same USB driver ( that was working in Win2k/XP ) , then there is a
data loss ( I am getting the data multiples of 512 bytes , but less than the
0x96000 ).

One more observation is , I am getting the complete data on the machines
with "Standard Enhanced PCI to USB Host Controller " with VISTA OS.
If we have a machine with "ICH8 " USB Host controller and with VISTA OS,
then some times complete data is received, but most of the incomplete data is
received.
If we have a machine with "82801GB " USB Host controller and with VISTA
OS, then always incomplete data is received
If we have a machine with "82801EB " USB Host controller and with VISTA
OS, then no data is received and the IRP is returned with ERRNO : 120

As I mentioned initially, the same drivers works in all the above machines,
If I install Windows 2000 / XP in those machines.

If you have any information / suggestion related to this problem, please
reply to me.

xxxxx@lgsoftindia.com wrote:

I have a WDM driver with functionality of "receiving 0X96000 bytes
from the USB Device ". ( The MaxPacketSize is 512 bytes and the
MaximumTranferSize is 0x400000 bytes in the bulk pipe that I am using. ).

In windows 2000/WindowsXP
I am getting the complete data (0x96000 bytes ) from the device, each
time I read the data from it.

However if I install the windows VISTA on the same machine and try to
use the same USB driver ( that was working in Win2k/XP ) , then there is a
data loss ( I am getting the data multiples of 512 bytes , but less than the
0x96000 ).

One more observation is , I am getting the complete data on the machines
with "Standard Enhanced PCI to USB Host Controller " with VISTA OS.
If we have a machine with "ICH8 " USB Host controller and with VISTA OS,
then some times complete data is received, but most of the incomplete data is
received.
If we have a machine with "82801GB " USB Host controller and with VISTA
OS, then always incomplete data is received
If we have a machine with "82801EB " USB Host controller and with VISTA
OS, then no data is received and the IRP is returned with ERRNO : 120

Do you mean C0000120? That’s STATUS_CANCELLED. Does your driver do any
timeout management? Do you ever do an abort pipe or reset pipe operation?

Vista is much pickier than previous systems about strict USB bus
compliance. Does your device ever send empty or short packets when it
has nothing to send? Have you used a bus analyzer to see what happens
on the bus when this situation occurs?


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.