none
wrong usb driver loaded after plugin RRS feed

  • Question

  • I have a ftdi usb/serial-converter and a usb/wlan-module

    They are working fine, if they are added alone in the image (nk.bin with ftdi or nk.bin with wlan)

    If i add both of them in an image, then the wlan module is recognized as ftdi usb/serial-module (ftdi_ser.dll is loaded for wlan-module in active drivers)

    Maybe the HKEY_LOCAL_MACHINE\Drivers\USB\LoadClients is making confusion ?

    ...

    [HKEY_LOCAL_MACHINE\Drivers\USB\LoadClients\Default\Default\255\FTDI_DEVICE]
    "DLL"="ftdi_ser.dll"

    ...

    [HKEY_LOCAL_MACHINE\Drivers\USB\LoadClients\Default\Default\Default\RT2501USB]
        "Dll"="RT2501USB.DLL"

    ...

     

    Wednesday, September 29, 2010 2:42 PM

All replies

  • Your problem is that the LoadClients keys for both drivers are too general, as if each expects to be the only possible device connected to the host controller.   As a result, they both match the USB device descriptors reported by the wlan module.  Because the GroupX_ID rules for loading USB devices drivers gives the form Default\Default\Group3_ID precendence over the form Default\Default\Default, the FTDI_DEVICE key ends up being used instead of the RT2501 driver. 

    The solution is to create more specific GroupX_ID keys, based on the devices' (e.g. based on VendorID, ProductID, DeviceClassCode, etc.) that will force the correct driver to be loaded for each device.

    For information on creating the USB HCD driver registry settings, take a look at http://msdn.microsoft.com/en-us/library/ee484468.aspx and http://msdn.microsoft.com/en-us/library/ee484894.aspx


    Tom Gensel PTG Systems, LLC http://www.ptgsystems.com
    Wednesday, September 29, 2010 9:43 PM
  • so for the wlan module with Default\Default\Default i should use a more specific registry setting ?

    found vendorid and deviceid for my wlan module :

    USBD:LoadDeviceDrivers - Device VendorId: 6376, ProductId: 25144, Release: 1

    added the following key (instead of Default\Default\Default):

    [HKEY_LOCAL_MACHINE\Drivers\USB\LoadClients\6376_25144\Default\Default\RT2501USB]
        "Dll"="RT2501USB.DLL"

    but driver doesnt get loaded - is always recognized as FTDI

     

    traced down:

    USBD: Calling client attach proc for RT2501USB
    USBD: Client did not accept control of device

    ...

    USBD: Calling client attach proc for FTDI_DEVICE
    USBD: Client accepted control of device

     

     

    NEW TEST:

    seems to work with (6376_25144\Default\255) :

    [HKEY_LOCAL_MACHINE\Drivers\USB\LoadClients\6376_25144\Default\255\RT2501USB]
        "Dll"="RT2501USB.DLL"

    Thursday, September 30, 2010 6:36 AM
  • Keep in mind that the USB device drivers are loaded starting with the most general and progressing through more specific drivers until a driver is found that accepts control of the device.  This is done to reduce the number of drivers required to be loaded in the system. 
    Tom Gensel PTG Systems, LLC http://www.ptgsystems.com
    Thursday, September 30, 2010 3:21 PM
  • so USB device drivers are loaded in this way :

    search for the default/default/default driver

    search for the most general group 1 driver

    ... and so on

    but why wlan module driver (Default\Default\Default\RT2501USB) doesnt get loaded, if there is also a fdti module (Default\Default\255\FTDI_DEVICE) - Default\Default\Default is the most general ?

    if there is only the wlan module, the driver loads fine .

    Friday, October 1, 2010 6:33 AM