Difference Between USB Multi Interface, Multi Function, Composite andCompound Devices.

Discussion in 'Windows Vista Drivers' started by Neo, Apr 11, 2008.

  1. Neo

    Neo Guest

    Hi,

    1. I am very much confused about USB Multi Interface, MultiFunction,
    Compound and Composite Devices. Can anyone please Clarify me the
    difference.

    2. I am writing a USB Bus Enumerator, i mean something similar to the
    Host Controller Driver.
    so, i wanted to invalidate the undelying devices to the OS. Now, i am
    arised to a point, how to detect Multi Interface Devices.
    i thought the device with multiple interfaces is a Multi interface
    device, but i have couple of devices with me which are multiple
    interfaces(2No's) but it is a single interface device. when i connect
    it to the standard host controller it detects as single interface
    device and the usbccgp.sys is NOT loaded. Here my question is how do i
    detect whether or not the device is a Multi Interface device.

    Thanks and Regards,
    Neo
     
    Neo, Apr 11, 2008
    #1
    1. Advertisements

  2. Neo

    Neo Guest

    Hi,

    i have figured out something, please confirm it.

    Question : How do i detect whether or not the device is a Multi
    Interface device.
    Answer : Number of Interfaces are greater than 1 then it is a
    MultiFunction Device.
    But, i have found some of the devices having more than one interface
    but the Windows Standard HC Showing them as Single Function Device.

    So, i have debugged furthur and arrived to a conclusion that,
    The Device Having more than one interface is MF Device.
    But, though the device having Multiple Interface but with same Class,
    Protocol, Sub Class is Single Function Device.

    That means multiple interface devices having different Class,
    SubClass, Protocol are only MultiFunction DEvice, otherwise it's
    single function device.

    please confirm it !

    Thanks and Regards,
    Neo
     
    Neo, Apr 15, 2008
    #2
    1. Advertisements

  3. Nope. Hint: you changed the term in your answer from what it was in
    your question.
    Typically, multi-function devices have class/subclass/protocol of
    0x00. Which is a special case of "they are all the same", I suppose.
     
    chris.aseltine, Apr 15, 2008
    #3
  4. Neo

    Neo Guest

    Sorry, i Apologise for my mistake.
    i should have checked thoroughly before postin it into the group. i
    apologise for my mistake.

    My question was :

    Question : How do i detect whether or not the device is a Multi
    Function device.
    Answer : Number of Interfaces are greater than 1 then it is a
    MultiFunction Device.
    But, i have found some of the devices having more than one interface
    but the Windows Standard HC Showing them as Single Function Device.

    Regards,
    Neo
     
    Neo, Apr 16, 2008
    #4
  5. chris.aseltine, Apr 16, 2008
    #5
  6. Neo

    Tim Roberts Guest

    Remember that certain device classes are handled specially. USB Audio and
    USB Video devices, for example, always have two interfaces (a control
    interface and a streaming interface), but the hub driver knows that they
    are related, and exposes only a single device for them.
     
    Tim Roberts, Apr 18, 2008
    #6
  7. Neo

    Neo Guest

    My question was :
    Hi,

    Thank you very much Mr. Chris. It helped me a lot. Thanks once again.

    Hi Mr. Tim Roberts,

    The Issue here is i am writing a USB Enumerator, i.e., Complete
    replacement for USB Host controller. Including usbport.sys, usbhub.sys
    and usbxhci.sys.
    so, i need handle it in my driver, as there is no usbhub.sys to handle
    for me.
    can you please shed some more light on how to handle devices like
    them.


    Thanks and Regards,
    Neo
     
    Neo, Apr 18, 2008
    #7
  8. Neo

    Tim Roberts Guest

    usbport.sys, usbhub.sys and usbccgp.sys are not part of the host
    controller. You can probably use those as-is, even with a custom host
    controller driver.
    Haven't you ever watched how the real USB stack handles these devices? It's
    not that hard to figure out.
     
    Tim Roberts, Apr 20, 2008
    #8
  9. Neo

    Neo Guest

    Hi Mr. Tim Roberts,

    how can i use them to make it work with my HC Driver.
    can you please help in finding the documentation for the same,
    how can i tell those drivers to use my Host controller but not the
    standard windows driver.

    Thanks and Regards,
    Neo
     
    Neo, Apr 22, 2008
    #9
  10. The innards of the USB stack are not documented. Why are you creating
    a replacement?
     
    chris.aseltine, Apr 22, 2008
    #10
  11. Neo

    Tim Roberts Guest

    Remember that driver stacks work the other way around, from the bottom up.
    As long as your host controller driver exposes hubs and devices using the
    standard PnP ID names, the system will load the standard drivers to handle
    them. It can't tell, nor does it care, what's underneath.
     
    Tim Roberts, Apr 24, 2008
    #11
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.