Windows Vista Tips

Windows Vista Tips > Newsgroups > Windows Vista Drivers > \\.\HCD0, IOCTL_USB_GET_ROOT_HUB_NAME not working for EHCI control

Reply
Thread Tools Display Modes

\\.\HCD0, IOCTL_USB_GET_ROOT_HUB_NAME not working for EHCI control

 
 
winddklearner
Guest
Posts: n/a

 
      01-06-2006
Hi,
I'm using \\.\HCDn for getting the file descriptor of USB EHCI Root hub. I
call CreateFile on this and get the handle. This handle I pass to
DeviceIOControl with the IOCTL code set to IOCTL_GET_HCD_DRIVERKEY_NAME and
IOCTL_USB_GET_ROOT_HUB_NAME. This gives me EHCI Root Hub's descriptor as
USB#ROOT_HUB#4&14329df0&0#{f18a0e88-c30c-11d0-8815-00a0c906bed8} for UHCI
Controllers.
However, on Windows 2000, the CreateFile on \\.\HCDn path fails with error
number 2 (== The system cannot find the file specified.).
I'm compiling my program in VS6.0 with Win DDK 2003.
This same code works fine on UCHI, OHCI USB Controllers on Win2k. Also, it
works for EHCI Controller on Win2k3 and WinXP.
Then, why it is not working only on Windows 2000?
I have taken this code from usbiew utility source code present in NTDDK 2000.
Please guide. Thanks in advance.
 
Reply With Quote
 
 
 
 
Martin Borve [MSFT]
Guest
Posts: n/a

 
      01-06-2006
On Win2K there are two parallel USB driver stacks; the old Win2K stack is
loaded for USB 1.1 controllers, and the new XP stack is loaded for EHCI
controllers. Both stacks create symbolic links of the form HCD0, HCD1,
etc. As the old Win2K stack will be first create a symbolic link for
"HCD0", the XP stack will fail to create a symbolic link because it tries
to use the same link name.

The latest version of USBVIEW (Windows Server 2003 DDK) works around this
by using a GUID-based method of enumerating host controllers that supported
by the XP stack, in addition to using the symbolic link method. It then
insures it has no duplicates between the two methods.

Martin Borve
Windows DDK Support
This posting is provided "AS IS" with no warranties, and confers no rights.



 
Reply With Quote
 
 
 
 
winddklearner
Guest
Posts: n/a

 
      01-09-2006
Hi,
I compiled my code using Win DDK 2003 and ran it on Win 2k. Still it failed.
Do I need to use different version of DDK - other than DDK 2000 or DDK 2003?

>>MSFT>> The latest version of USBVIEW (Windows Server 2003 DDK) works around this ...

Where can I find this latest version of USBView, which has this work around?
I would like to implement that work around in my source code.
Thanks.
 
Reply With Quote
 
winddklearner
Guest
Posts: n/a

 
      01-10-2006
Dear Sir,
I checked in USBView.exe compiled in Win DDK 2003 (build 3790), but it also
has the same problem. Also, its version is same as that of Win DDK 2000.

Which version USBView in DDK carries this work around? Please guide.
Thanks.
 
Reply With Quote
 
Martin Borve [MSFT]
Guest
Posts: n/a

 
      01-11-2006
You need the Windows Server 2003 SP1 DDK. Earlier DDKs don't have the fix.

Martin Borve
Windows DDK Support
This posting is provided "AS IS" with no warranties, and confers no rights.



 
Reply With Quote
 
 
 
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
MaximumTransferSize limit for bulk on EHCI in Vista RC2 (5744)? Thomas Schimming Windows Vista Drivers 15 10-18-2006 07:52 PM
Need to access Specific EHCI operational registers eric Windows Vista Drivers 3 10-03-2006 07:20 PM
Windows XP EHCI Driver Gopa Windows Vista Drivers 2 01-18-2005 09:35 AM
comparison of Microsoft and Orange's EHCI drivers M Taha Masood Windows Vista Drivers 5 11-01-2004 03:04 PM
Microsoft EHCI driver & Multiple URBs Yariv Windows Vista Drivers 2 01-08-2004 06:34 AM