none
Loading of USB\COMPOSITE device fails RRS feed

  • Question

  • My windows 7 (intel/x64) box stopped working with composite usb devices.  I found this document that describes how they should work..

    http://msdn.microsoft.com/en-us/library/windows/hardware/ff537109(v=vs.85).aspx

    The relevant section being..

    The bus driver also checks the device class (bDeviceClass), subclass (bDeviceSubClass), and protocol (bDeviceProtocol) fields of the device descriptor. If these fields are zero, the device is a composite device, and the bus driver reports an extra compatible identifier (ID) of USB\COMPOSITE for the PDO.

    Here's the enumeration info for one such composite device that's not working:

    Device Descriptor:
    bcdUSB:             0x0110
    bDeviceClass:         0x00
    bDeviceSubClass:      0x00
    bDeviceProtocol:      0x00
    bMaxPacketSize0:      0x08 (8)
    idVendor:           0x0451 (Texas Instruments)
    idProduct:          0xF432
    bcdDevice:          0x0100
    iManufacturer:        0x01
    0x0409: "Texas Instruments"
    iProduct:             0x02
    0x0409: "Texas Instruments MSP-FET430UIF"
    iSerialNumber:        0x03
    0x0409: "9CFF42A21E91272A"
    bNumConfigurations:   0x01

    As you can see, the requisite fields are set to 0x00, but the generic parent driver (USBCCGP.SYS) is not loading.  I'm not sure what of the chain is not working.  How do I further diagnose this problem?  Any way to see what PDOs are generated?  Any other suggestions?

    Thanks,
    Reza

    Thursday, June 6, 2013 8:19 PM

Answers

  • USB\COMPOSITE  is a string that is added to the list of compatible IDs for the device.  PnP will search the INFs for a match for the most specific hardware ID first (USB\VID_0451&PID_F432...), and if it doesn't find a match will search for the next most specific hardware ID, and so on eventually moving on to the compatible IDs (USB\COMPOSITE) and try to find INFs that match these IDs. 

    I'm not sure why PnP wouldn't find a match for USB\COMPOSITE, since there is an in-box INF with a match, unless there is some type of corruption going on. 

    You should be able to increase the verbosity of the logging if you want to get more information.

    http://msdn.microsoft.com/en-us/library/windows/hardware/ff550845(v=vs.85).aspx

    Tuesday, June 11, 2013 5:29 AM

All replies

  • To see the pdos, view by connection in device manager

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

    Friday, June 7, 2013 2:27 AM
  • Here are two composite devices..

    http://i.imgur.com/sjDIeM0l.jpg

    It shows up as a 'Generic USB Hub' and under the advanced tab under devices consuming bandwidth, it lists 'USB Composite Device'.  

    But it's not loading any drivers for the device itself.  Under the Details tab of the device, for the property 'Physical Device Object name' it has a value of '\Device\USBPDO-18'.   Under 'Comatible Ids' it lists..

    USB\DevClass_00&SubClass_00&Prot_00
    USB\DevClass_00&SubClass_00
    USB\DevClass_00
    USB\COMPOSITE

    But the generic parent driver is still not loading.  How is it mapped/loaded when a COMPOSITE device is detected?  Could there be something corrupt in the registry where this mapping exists?

    Thanks,

    Reza


    Friday, June 7, 2013 3:12 AM
  • What is the failure code for the devices with the yellow bang (i.e. code 10) as seen in device manager?

    Have you checked the setupapi.dev.log file to see if it points to any root cause?

    Friday, June 7, 2013 6:24 PM
  • Randy,

    The drivers for this device are not installed. (Code 28)

    And from the log:

         >>>  [Device Install (Hardware initiated) - USB\VID_0451&PID_F432\9CFF42A21E91272A]
    >>>  Section start 2013/06/07 16:17:10.174
         ump: Creating Install Process: DrvInst.exe 16:17:10.177
         ndv: Retrieving device info...
         ndv: Setting device parameters...
         ndv: Searching just Driver Store...
         dvi: {Build Driver List} 16:17:10.240
         cpy:      Policy is set to make all digital signatures equal.
         dvi:      Enumerating INFs from path list 'C:\Windows\INF'
         dvi: {Build Driver List - exit(0x00000000)} 16:17:10.378
         ndv: Selecting best match from just Driver Store...
         dvi: {DIF_SELECTBESTCOMPATDRV} 16:17:10.379
         dvi:      No class installer for 'Texas Instruments MSP-FET430UIF'
         dvi:      No CoInstallers found
         dvi:      Default installer: Enter 16:17:10.379
         dvi:           {Select Best Driver}
    !    dvi:                Selecting driver failed(0xe0000228)
         dvi:           {Select Best Driver - exit(0xe0000228)}
    !    dvi:      Default installer: failed!
    !    dvi:      Error 0xe0000228: There are no compatible drivers for this device



    After which it looks in windows update and finds nothing.  I'm curious as to how the COMPOSITE type is passed here (is it supposed to show up?) and how does Select Best Driver work?  
    Friday, June 7, 2013 11:35 PM
  • USB\COMPOSITE  is a string that is added to the list of compatible IDs for the device.  PnP will search the INFs for a match for the most specific hardware ID first (USB\VID_0451&PID_F432...), and if it doesn't find a match will search for the next most specific hardware ID, and so on eventually moving on to the compatible IDs (USB\COMPOSITE) and try to find INFs that match these IDs. 

    I'm not sure why PnP wouldn't find a match for USB\COMPOSITE, since there is an in-box INF with a match, unless there is some type of corruption going on. 

    You should be able to increase the verbosity of the logging if you want to get more information.

    http://msdn.microsoft.com/en-us/library/windows/hardware/ff550845(v=vs.85).aspx

    Tuesday, June 11, 2013 5:29 AM
  • Strange, I replied to this thread but it didn't seem to save.

    The problem was that my usb.inf somehow went missing.  Someone else with a similar problem tracked down the solution on another thread.  Copying over a version from my other PC fixed it.

    Thanks,
    Reza

    Tuesday, June 11, 2013 5:53 AM