none
USB Composite device installation problem RRS feed

  • Question

  • 1. My USB device has multiple configurations

    2. The first configuration has a single interface while the rest of the configurations has multiple interfaces

    3. In accordance with this link, I want to use "usbccgp.sys" to select a configuration other than the first/default ( hence, use an INF to setup "usbccgp.sys" and then manually set the registry with the desired cfg )

    4. I have generated and signed an INF file for that purpose

    5. I Install the driver through device manager by manually selecting the INF folder

    When using the following INF to setup "usbccgp.sys" device manager reports that no compatible driver was found

    ...
    [Standard.NTamd64] %DeviceName%=USB_Install, USB\VID_nnnn&PID_nnnn&MI_nn
    ...

    When using the following INF ( having the MI_nn ommitted ) the driver is found and the installation succeed though "usbccgp.sys" is not configured for the device...

    ...
    [Standard.NTamd64] %DeviceName%=USB_Install, USB\VID_nnnn&PID_nnnn
    ...

    How can I setup "usbccgp.sys" to use a custom USB configuration ( and not an interface ) ?


    Nadav Rubinstein, See my Blog @ http://www.sophin.com


    • Edited by Nadav Rub Monday, November 17, 2014 9:52 AM
    Monday, November 17, 2014 9:44 AM

All replies

  • Look in the registry under ... Enum\USB what are the entries for your VID & PID. Is usbccgp installed as the function driver? If not, this may be because your device does not have the correct USB class (multifunction, code FF).

    -- pa

    Monday, November 17, 2014 10:55 AM
  • Hi Pavel, Thanks for your response, "usbccgp" doesn't appear under my device registry entries ( dump provided bellow ), I am not sure I understand what you mean by saying "multifunction, code FF", the ClassGUID used is the USBDevice class: {88BAE032-5A81-49f0-BC3D-A4FF138216D6}.

    INF Snap:

    [Version] Signature = "$Windows NT$" Class = USBDevice ClassGUID = {88BAE032-5A81-49f0-BC3D-A4FF138216D6} Provider = %ManufacturerName% CatalogFile = WinUSBInstallation.cat DriverVer=09/04/2014,13.54.20.543

    ...


    Windows Registry Editor Version 5.00

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\VID_0123&PID_1234\dce108ced13136f8ddf3ef23ca0dc1fdf6e70e86]
    "DeviceDesc"="@oem26.inf,%devicename%;iOS Device"
    "LocationInformation"="Port_#0005.Hub_#0004"
    "Capabilities"=dword:00000014
    "ContainerID"="{d4f8f71b-1426-5084-97a5-1b856b485b66}"
    "HardwareID"=hex(7):55,00,53,00,42,00,5c,00,56,00,49,00,44,00,5f,00,30,00,35,\
      00,41,00,43,00,26,00,50,00,49,00,44,00,5f,00,31,00,32,00,41,00,41,00,26,00,\
      52,00,45,00,56,00,5f,00,30,00,35,00,31,00,30,00,00,00,55,00,53,00,42,00,5c,\
      00,56,00,49,00,44,00,5f,00,30,00,35,00,41,00,43,00,26,00,50,00,49,00,44,00,\
      5f,00,31,00,32,00,41,00,41,00,00,00,00,00
    "CompatibleIDs"=hex(7):55,00,53,00,42,00,5c,00,43,00,6c,00,61,00,73,00,73,00,\
      5f,00,30,00,36,00,26,00,53,00,75,00,62,00,43,00,6c,00,61,00,73,00,73,00,5f,\
      00,30,00,31,00,26,00,50,00,72,00,6f,00,74,00,5f,00,30,00,31,00,00,00,55,00,\
      53,00,42,00,5c,00,43,00,6c,00,61,00,73,00,73,00,5f,00,30,00,36,00,26,00,53,\
      00,75,00,62,00,43,00,6c,00,61,00,73,00,73,00,5f,00,30,00,31,00,00,00,55,00,\
      53,00,42,00,5c,00,43,00,6c,00,61,00,73,00,73,00,5f,00,30,00,36,00,00,00,00,\
      00
    "ConfigFlags"=dword:00000000
    "ClassGUID"="{88bae032-5a81-49f0-bc3d-a4ff138216d6}"
    "Mfg"="@oem26.inf,%manufacturername%;Volicon Inc"
    "Service"="WINUSB"
    "Driver"="{88bae032-5a81-49f0-bc3d-a4ff138216d6}\\0000"
    "FriendlyName"="iPod"
    
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\VID_0123&PID_1234\dce108ced13136f8ddf3ef23ca0dc1fdf6e70e86\Device Parameters]
    "EnumerationRetryCount"=dword:00000000
    "DeviceIdleEnabled"=dword:00000001
    "DeviceIdleIgnoreWakeEnable"=dword:00000001
    "DefaultIdleState"=dword:00000001
    "UserSetDeviceIdleEnabled"=dword:00000001
    "DefaultIdleTimeout"=dword:00007530
    "DevicePowerUpOnS0Entry"=dword:00000001
    "EnableDefaultAutoPlaySupport"=dword:00000001
    "EnableLegacySupport"=dword:00000001
    "ReportJPGFormatForEXIF"=dword:00000001
    "TSRedirFlags"=dword:00000001
    "SymbolicName"="\\??\\USB#VID_0123&PID_1234#dce108ced13136f8ddf3ef23ca0dc1fdf6e70e86#{a5dcbf10-6530-11d2-901f-00c04fb951ed}"
    "PortableDeviceType"=dword:00000000
    "Icons"=hex(7):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,\
      00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,77,00,\
      70,00,64,00,73,00,68,00,65,00,78,00,74,00,2e,00,64,00,6c,00,6c,00,2c,00,2d,\
      00,37,00,30,00,31,00,00,00,00,00
    "AutoPlaySourceOnly"=dword:00000001
    "DeviceHandlers"="WpdDeviceHandler_USB#VID_0123&PID_1234#DCE108CED13136F8DDF3EF23CA0DC1FDF6E70E86"
    "Label"="NewCorp device"
    "DeviceInterfaceGUIDs"=hex(7):7b,00,61,00,64,00,66,00,38,00,37,00,30,00,32,00,\
      63,00,2d,00,38,00,38,00,35,00,37,00,2d,00,34,00,32,00,30,00,34,00,2d,00,39,\
      00,39,00,32,00,66,00,2d,00,36,00,31,00,61,00,39,00,33,00,65,00,62,00,39,00,\
      66,00,30,00,63,00,31,00,7d,00,00,00,00,00
    
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\VID_0123&PID_1234\dce108ced13136f8ddf3ef23ca0dc1fdf6e70e86\Device Parameters\Ceip]
    "DeviceInformation"=dword:00000080
    
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\VID_0123&PID_1234\dce108ced13136f8ddf3ef23ca0dc1fdf6e70e86\Device Parameters\WDF]
    "WdfDefaultIdleInWorkingState"=dword:00000000
    "IdleInWorkingState"=dword:00000000
    
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\VID_0123&PID_1234\dce108ced13136f8ddf3ef23ca0dc1fdf6e70e86\Device Parameters\WpdMtpDriver]
    "TransportClassID"="{34C445BA-07EB-4b5d-8EE9-F66BB9DA403B}"
    
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\VID_0123&PID_1234\dce108ced13136f8ddf3ef23ca0dc1fdf6e70e86\Device Parameters\WUDF]
    "DriverList"=hex(7):57,00,70,00,64,00,4d,00,74,00,70,00,44,00,72,00,69,00,76,\
      00,65,00,72,00,00,00,00,00
    "ImpersonationLevel"=dword:00000002
    "KernelModeClientPolicy"=dword:00000001
    "Exclusive"=dword:00000001
    


    Nadav Rubinstein, See my Blog @ http://www.sophin.com

    Monday, November 17, 2014 12:53 PM
  • The Descriptor of the device used can be found bellow, Unfortunately, I am not the HW vendor, I am merely trying to interface an existing device that expose multiple configurations, the class of the device I am interfacing is Zero although it expose multiple configurations...

     bLength            12h  
     bDescriptorType    01h Device 
     bcdUSB             0200h USB Spec 2.0 
     bDeviceClass       00h Class info in Ifc Descriptors 
     bDeviceSubClass    00h  
     bDeviceProtocol    00h  
     bMaxPacketSize0    40h 64 bytes 
     idVendor           0123h NewComp Inc. 
     idProduct          1234h  
     bcdDevice          0510h 5.10 
     iManufacturer      01h "NewComp Inc" 
     iProduct           02h "NewProduct" 
     iSerialNumber      03h "dce108ced13136f8ddf3ef23ca0dc1fdf6e70e86" 
     bNumConfigurations 04h 
    


    Nadav Rubinstein, See my Blog @ http://www.sophin.com

    Monday, November 17, 2014 2:04 PM
  • your INF installs winusb, not usbccgp. Usbccgp is probably not loading on the device because the first config has only one interface on it, hence it is not composite. the determination if the device is composite or not does NOT look at all configurations, just the first.

    I can't tell from the thread, have you written a custom INF that matched usbccgpg to the USB\VID_nnnn&PID_nnnn hardware ID to force it to load? If not, that is the first step to take.


    d -- This posting is provided "AS IS" with no warranties, and confers no rights.

    Monday, November 17, 2014 6:40 PM