CAUSE
Issue A - USB 2.0 host controllers are not enumerated on Windows 2000-based computers
The USBView.exe program does not enumerate USB 2.0 host controllers on Windows 2000-based computers because two different USB driver stacks run on Windows 2000-based computers, as follows:
- The first stack is used for USB 1.1 host controllers.
- The second stack is used for USB 2.0 host controllers.
Both USB driver stacks create symbolic link names that have the following format, where
x represents an instance number:
Both USB driver stacks start the instance number at 0. This behavior means that both driver stacks try to create the following symbolic link name:
The USB 2.0 driver stack tries to create this symbolic link name
after the USB 1.1 driver stack creates the symbolic link name. Therefore, the symbolic link name is not created, and the USB 2.0 host controller cannot be accessed through a symbolic link.
Issue B - Attached USB devices are not displayed
The USB driver stack that is included in Windows XP SP1 includes support for a new input/output control (IOCTL) that is named as follows:
IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX
This IOCTL replaces the earlier version of the IOCTL that is named IOCTL_USB_GET_NODE_CONNECTION_INFORMATION. The earlier version of the IOCTL was used in earlier versions of the USBView.exe program.
The USBView.exe program was modified to use this newer IOCTL because it returns information about whether the USB device is operating at high speed.
If you try to use IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX on pre-Windows XP SP1-based computers, the attempt is not successful. Additionally, no information about the USB device is displayed.