Article | : | 838100 |
Last Review | : | May 14, 2004 |
Revision | : | 1.0 |
\DosDevices\HCDx
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: \DosDevices\HCD0
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.
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.
The EnumerateHostControllers
function in the
Enum.c
file includes a section whose comments explain how
to use this technique to enumerate the host controller. You can modify this
function to detect when it is running on a Windows 2000-based computer. You can
then use both the GUID-based enumeration method and the symbolic link method to
enumerate all USB host controllers.
IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX
, in the USBView.exe program. You
can modify the IOCTL so that if the IOCTL is not successful, the USBView.exe
program falls back to use the earlier version of the IOCTL,
IOCTL_USB_GET_NODE_CONNECTION_INFORMATION
.
This fallback behavior allows the USBView.exe program to still report whether a device is running at high speed on a computer that is running Windows XP SP1 or later versions of Windows. Additionally, this fallback behavior also displays USB devices on pre-Windows XP SP1-based computers.