USB 2.0 issues with Windows 2000 (328580)



The information in this article applies to:

  • Microsoft Windows 2000

This article was previously published under Q328580

SYMPTOMS

This article describes six USB 2.0 issues and their respective causes. The issues fall into one of the following categories:
  • Functionality that is not supported by Windows 2000 universal serial bus (USB) drivers or hardware design.
  • A limitation imposed by Windows 2000 USB or hardware design.
For each issue described in the "Symptoms" section of this article, see the corresponding item in the "Cause" section:
  • Selective suspend. This is a new feature introduced in Microsoft Windows XP and Windows Server 2003. With this feature, host controllers can idle out, even with device (that support selective suspend in their drivers) connected to that controller. The USB Enhanced Host Controller Interface (EHCI) driver stack on Windows 2000 does not support selective suspend.
  • Idle EHCI controller. The USBehci.sys file does not clear the run bit on an idle EHCI controller. This is not supported in Windows 2000. This feature is only implemented in Windows XP, and helps reduce power consumption on idle host controllers, therefore improving battery life on USB EHCI-based mobile systems.
  • Code 28. Sometimes Device Manager shows Code 28 even for a properly working device.
  • Start, resume, and suspend. The time it takes to start, to resume from hibernation, and to suspend on Windows 2000 is not as fast as on Windows XP. Various improvements have been made in the Windows XP operating systems to improve resume time on a global basis.
  • Port sharing results in Unknown Device message. One of the main issues that you can experience when you share a port between two host controllers is the appearance of an Unknown device message. This occurs in the Device Manager after resume from hibernation. To resolve this issue, in Device Manager, scan for hardware changes.
  • Port sharing results in Unsafe Removal message. Another issue that occurs when you share a port between two host controllers is the appearance of an Unsafe Removal dialog box. This can occur when you resume from suspend or hibernation, and because the EHCI controller chirps all ports on a resume from S3/S4. This forces a full/low speed device to momentarily jump over to the EHCI controller before returning to the companion controller. This jumping between controllers causes the Unsafe Removal dialog box. You can address this issue by attaching a USB 2.0 hub between the root port and the device.

CAUSE

  • Selective suspend. This feature was introduced after Windows 2000. Therefore, the check box is generally unavailable (appears dimmed) under USB 2.0 root hub (see Properties, on the Power Management tab), or under external hubs downstream of the USB 2.0 controller. After you select the check box, when you click OK, the check box is cleared (because Windows 2000 does not support this feature).
  • Idle EHCI controller. EHCI controller will not be suspended (this is different from selective suspend) even if there are no devices attached to it. This works correctly on some Open Host Controller Interface (OHCI) controller and Universal Host Controller Interface(UHCI) controllers.
  • Code 28. Because you cannot synchronize the EHCI controller with OHCI/UHCI companion controllers, you may experience Code 28 problems on Windows 2000. Synchronization is lacking because sharing a single port (child) by 2 or more host controllers (2 parents) is not compliant with Windows plug-and-play architecture. (Windows PNP mandates that all devices have a parent-child relationship instead of a graph topology.) You can resolve this problem using one of the following methods:
    • Unplug the device and plug it into a different port (or into the same port again).
    • Disable and enable the EHCI controller.
    • Restart the computer.
  • Start, resume, and suspend. Windows XP has special architecture in place to improve start and resume times. The USB 2.0 driver stack on Windows XP takes advantage of these features and may resume faster on Windows XP than on Windows 2000. Some improvements in Windows XP SP1 also do more to reduce resume time for USB controllers.
  • Port sharing results in Unknown Device message. This occurs because the device is first enumerated on a companion controller and then jumps to EHCI. This jump, and because the device takes a long time to get configured, leaves the device in an unknown state. This problem may be addressed in a future release.
  • Port sharing results in Unsafe Removal message. This occurs because the hardware design of companion controllers causes the devices to jump between controllers during resume. For more information, see the cause for Code 28.

RESOLUTION

For some issues, individual resolutions have been added to the description of the cause.

STATUS

This behavior is by design. Redesign of hardware or advanced software available in future operating systems can address some of these features.

Modification Type:MajorLast Reviewed:9/8/2005
Keywords:kbpending kbprb kbUSB KB328580 kbAudDeveloper kbAudEndUser kbAudITPRO kbAudOEM