after canceling a URB, the host controller discards part of the data

Tech-Archive recommends: Fix windows errors by optimizing your registry



Hello,

I am writing a USB driver for WXP, and recently came across the
following problem: I submit bulk read URBs to the host controller, and
after a while use IoCancelIrp to cancel the latest URB.
Once in a while, the host controller reports that 0 bytes transferred
in the last URB (UrbBulkOrInterruptTransfer.TransferBufferLength is 0),
even-though some packets of this URB were transferred successfully on
the bus, as can be seen with a USB analyzer.
Does anyone know if this is the acceptable behavior? I found this on
two different brands of host controllers.
Any workaround for this issue?

Thanks,
Jack

.



Relevant Pages

  • after canceling a URB, the host controller discards part of the data
    ... I am writing a USB driver for WXP, ... I submit bulk read URBs to the host controller, ... after a while use IoCancelIrp to cancel the latest URB. ... the host controller reports that 0 bytes transferred ...
    (microsoft.public.win32.programmer.kernel)
  • Re: USB Issue
    ... function driver sends the URB down the stack to the PDO. ... routes the IRP to the host controller. ...
    (microsoft.public.development.device.drivers)
  • Re: after canceling a URB, the host controller discards part of the data
    ... > I am writing a USB driver for WXP, ... > after a while use IoCancelIrp to cancel the latest URB. ... the host controller reports that 0 bytes transferred ...
    (microsoft.public.win32.programmer.kernel)
  • Re: IRP_MJ_PNP
    ... does URB is send to device for getting all this information from the ... the hub or host controller will already have ... Providenza & Boekelheide, Inc. ...
    (microsoft.public.development.device.drivers)
  • Re: Problem with ISOUSB
    ... I modified BULKUSB and ISOUSB driver samples provided by windows ddk to ... develop a driverwhich handles both Bulk and Iso transfers, ... URB, each entry in the iso packet array corresponds to exactly one ...
    (microsoft.public.development.device.drivers)