none
USB network adapter cannot start (Code 10) when connected to Generic USB Hub

    Question

  • I have a USB network adapter that works fine when it is connected directly to a USB Root Hub, but fails to start when connected to a Generic USB Hub.

    To investigate this problem, I used two Dell laptops (Latitude E6420 and Latitude XT2).   The USB network adapter always gets a "Code 10" cannot start error when plugged into any USB port on the E6420.   Looking in the Device Manager on the E6420, I see that there are two USB Root Hubs and two Generic USB Hubs.   Each of the root hubs appears to connect to one of the generic hubs.   All of the USB ports external to the laptop are connected to one of the Generic USB Hubs.

    Using the XT2, when I plug in the USB network adapter it works fine.   The XT2 has 8 USB Root Hubs and no Generic Root Hubs.  So the USB network adapter plugs in directly to a root hub.   I took an "Active USB" cable and plugged it into the XT2.  It identified itself as a Generic USB Hub.   I then plugged the USB network adapter into the active cable.   The network adapter failed to start (Code 10).

    This appears to be a problem in the Windows 7 generic usb hub driver (usbhub.sys) since all the other drivers involved are the same.   This is a real problem for using the E6420 since it does not have any external ports that are not connected to a generic hub.   I am sure this affects other PCs as well.

    I found this MS article http://support.microsoft.com/kb/2410682 "Function of USB Composite Device fails to start if not first function on device" which may be related.   That article discusses rebuilding the device drivers.  I don't have access to the code in order to do that.

    Any ideas on how to resolve this?

     

    Friday, October 07, 2011 3:07 AM

All replies

  • Here is some more information.  Both Dell laptops are running Windows 7 64-bit.   I am installing the USB network adapter using the Microsoft Corporation "Remote NDIS Compatible Device" drivers.   The driver files listed in the Device Manager on the XT2 for this network adapter are rndismp6.sys and usb80236.sys.   These are the same files that are loaded on the E6420 but do not work on that laptop.  The versions of the drivers files are the same on both computers and for both driver files (6.1.7600.16385).

    Perhaps the problem is in one of these driver files (rndismp6.sys, usb80236.sys) when interacting with the usbhub.sys used by the generic usb hub.  However the USB root hub uses the same usbhub.sys driver and also usbd.sys.

     

     

    Friday, October 07, 2011 1:59 PM
  • No.  The active USB hub is only plugged into the XT2 in order to reproduce the problem on that laptop.   It is not needed.  However, since the E6420 only has generic USB hubs (these are built into the laptop) the USB network adapter never works.

    I have noticed some other issues looking at the E6420.  First it is running Win7 SP1.   The odd thing is that the driver for the generic USB hubs shows version 6.1.7601.17586 (dated 6/21/2006) on the Driver tab of the Generic USB Hub Properties dialog.   But when I open Driver Details and click on usbhub.sys it shows file version 6.1.7600.16385.

    Searching my Windows folder for usbhub.sys files I find versions 6.1.7601.17586 (dated 7/11/2011) and 6.1.7601.17514 (dated 11/20/2010).   But I don't find 6.1.7600.16385.   What is going on here?  Why the 2006 date on the Properties dialog?

    I tried to update the drivers for the Generic USB hubs but Windows stated the installed drivers were the latest.

    Friday, October 07, 2011 4:00 PM
  • The USB ports on the E6420 work fine for mice, usb flash drives, generic USB hubs.   It just does not work for the USB network adapter.   I am getting reports of this problem from dozens of my customers who are running Win7.   Always code 10 with the USB network adapter when used with a generic USB hub.   Other USB devices work fine.   I cannot have my customers reinstall Win7.

     

    Friday, October 07, 2011 4:19 PM
  • One other thing that seems odd to me.   When I try to install the USB network adapter the first time, it is labeled as "WiFi Radio".   It gets a code 10 so I uninstall it.   The next time I install it the label is "WiFi Radio #2".   Still gets the code 10.   So I uninstall.  The next time I install it is "WiFi Radio #3".   Somewhere in Windows it is remembering that I had this installed before.  I am wondering whether it is reinstalling the same drivers over and over even when I have made some changes.

    Where is Windows keeping this installation history/memory?   I searched the registry but found nothing (but I am not really sure what to search for).

    Friday, October 07, 2011 4:23 PM
  • It's not a matter of getting a wireless adapter to work.  The problem is my company bought several hundred of this specific USB network adapter to ship with our software.   Our intent was to not have to worry about any incompatibilty with other network adapters.   So much for that plan...

    So I need to get this specific USB network adapter to function on these new laptops with only generic usb hubs exposed to the outside.  This appears to be a bug in Microsoft's drivers.

    Does Microsoft provide debug versions of these drivers that would help me more closely identify the root causes?

     

    Sunday, October 09, 2011 9:20 PM
  • Vegan Fanatic,

    Thanks for all your digging and responses.   This USB WiFi network adapter is using only Microsoft provided drivers.   These drivers work when the adapter is connected to a root hub.  They fail with code 10 (cannot start) when there is a generic usb hub in between the root hub and the network adapter.

    Therefore it is the Microsoft drivers that appear to be at fault, not the hardware.

     

    Sunday, October 09, 2011 9:52 PM
  • Just found out that this code 10 problem happens on Windows XP 32-bit as well.   Code 10 is encountered when plugged in to a generic usb hub.  Works fine when plugged into a root hub.

     

    Monday, October 10, 2011 3:58 PM
  • Yes.  I was using the hub attached to my Dell monitor.

     

    Monday, October 10, 2011 4:03 PM
  • On XP SP3 32-bit the error in the setupapi.log file is:

    [2011/10/13 11:14:09 788.58]
    #-199 Executing "C:\WINDOWS\system32\rundll32.exe" with command line: rundll32.exe newdev.dll,ClientSideInstall \\.\pipe\PNP_Device_Install_Pipe_0.{DAF936E1-9744-4096-ABF3-E904CF691AE9}
    #-166 Device install function: DIF_PROPERTYCHANGE.
    #I292 Changing device properties of "USB\VID_1234&PID_0001\N99999999".
    #I163 Device not started: Device has problem: 0x0a: CM_PROB_FAILED_START.
    #I307 DICS_START: Device could not be started.

    Since this problem happens on Windows 7 and Windows XP, is there a better forum to cover this USB issue?

    Note:  I have changed the VID and PID.

     

    Thursday, October 13, 2011 4:24 PM
  • I turned on verbose logging on XP.  Here is the new setupapi.log section that shows the failure.

    #-199 Executing "C:\WINDOWS\system32\rundll32.exe" with command line: rundll32.exe newdev.dll,ClientSideInstall \\.\pipe\PNP_Device_Install_Pipe_0.{2E4E6A75-B3F7-4519-90CA-0CC11959D1DD}
    #-147 Loading class installer module for "Digi Wi-Fi Radio USB Remote NDIS Network Device".
    @ 11:58:43.041 #V286 Verification using alternate platform (Platform = 2, High Version = 5.1, Low Version = 5.0).
    @ 11:58:43.119 #V132 File "C:\WINDOWS\system32\NetCfgx.dll" (key "NetCfgx.dll") is signed in catalog "C:\WINDOWS\system32\CatRoot\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}\NT5.CAT".
    @ 11:58:43.135 #V146 Using exported function "NetClassInstaller" in module "C:\WINDOWS\system32\NetCfgx.dll".
    @ 11:58:43.135 #V166 Device install function: DIF_PROPERTYCHANGE.
    @ 11:58:43.135 #T152 Executing class installer.
    @ 11:58:43.135 #V153 Completed class installer.
    @ 11:58:43.135 #V155 Executing default installer.
    @ 11:58:43.135 #I292 Changing device properties of "USB\VID_1234&PID_0001\N99999999".
    @ 11:58:48.182 #I163 Device not started: Device has problem: 0x0a: CM_PROB_FAILED_START.
    @ 11:58:48.182 #I307 DICS_START: Device could not be started.
    @ 11:58:48.182 #V156 Completed default installer.
    @ 11:58:48.197 #V166 Device install function: DIF_DESTROYPRIVATEDATA.
    @ 11:58:48.197 #T152 Executing class installer.
    @ 11:58:48.213 #V153 Completed class installer.

    • Edited by James.Boyle Thursday, October 13, 2011 5:53 PM
    Thursday, October 13, 2011 5:52 PM
  • According to this Microsoft web page (http://msdn.microsoft.com/en-us/library/windows/hardware/ff543712(v=vs.85).aspx), SetupDiChangeState is the default handler for DIF_PROPERTYCHANGE.

    Is there a method to intercept the call to SetupDiChangeState in order to find out more information about this failure to start beyond what is provided in the setupapi log file?

    I've heard of Detours, but I am not familiar with how hard that might be to use.   Anything other methods?

    Friday, October 21, 2011 2:43 PM