BUG: USB Bulk Bandwidth Reclamation Disabled In IRP Completion

ID: Q231912


The information in this article applies to:


SYMPTOMS

Under Windows 98, bulk Universal Serial Bus (USB) transfers that are scheduled within the completion handler of a transfer for a control endpoint will only transfer one data packet per frame on UHCI controllers.


CAUSE

On the UHCI bus driver (UHCD.sys) shipped in Windows 98, USB bulk bandwidth reclamation is disabled when a USB transfer completes for a control endpoint. This means that a transfer for a bulk endpoint scheduled at this time will not be given unused bandwidth on the bus, and will transfer data one packet per frame, which means the transfer can take up to 16 times longer than it should.


RESOLUTION

The caller should schedule a DPC using KeInsertQueueDpc(), and then submit the bulk transfer when the DPC's routine is called. Bulk bandwidth reclamation will be re-enabled by the time the DPC routine is called.


STATUS

This is a known problem in Windows 98. It has been fixed in Windows 98 Second Edition and Windows 2000.

Additional query words:


Keywords          : kbDDK kbWinOS2000fix kbWinOS98bug kbGrpWin9xDDK kbUSB kbWDM 
Version           : WINDOWS:
Platform          : WINDOWS 
Issue type        : kbbug 

Last Reviewed: August 3, 1999