About USB Device and Interface Descriptors

Hi,
To my understanding device and interface descriptors contain a USB device
class type that recognizes the functions the device implements (audio,
storage, printer, etc.).
There are a few things I do not understand about the USB device class
concept:

  1. Interface Class .vs. Device Class -
    What is the purpose of the device class mentioned in the device descriptor?
    The class is mentioned in the interface descriptor and a device may have
    many interfaces.
    Are there cases where the class in the device descriptor is not 0xFF or 0x00
    or the same as in the interface?

  2. Credibility of USB device class -
    Say a USB mass storage device reports an interface class of 0x03 (HID), but
    it still reports “USB Mass Storage Device” in its device description.
    Am I right in guessing that the USBSTOR.SYS will still be loaded and a file
    system will still be mounted regularly?
    If so, what is the credibility of this parameter if Windows doesn’t really
    care what it value is?

  3. Coverage of USB device class -
    Isn’t there a networking USB device class?
    The WI-FI USB device I just bought reports a interface class of 0xFE and
    subclass 0x01 which according to the documentation is an infra-red device
    and the infra-red device I bought reports 0xFF in the device class and 0x00
    in the interface class (and 0x00 is illegal to my understanding).

  4. USB device class and Compatible IDs -
    From my observation the compatible ID’s a PDO for a USB device sometime
    contain the class and sub class from the device descriptor and sometimes
    from the interface descriptor.
    What is the algorithm for this decision?

  5. Composite Devices -
    To my understanding when a device implements more than one interface the PDO
    reports a USB\COMPOSITE compatible ID, yet the PDO for the blue-tooth
    adapter I bought does not report this ID.
    How can this be? Can someone explain what a Compound Device is (I think I
    saw it once in a Power Point presentation.)?

I hope this is not too many questions in one shot…
Thank you
Shahar

Search MSDN for “Identifiers for USB Devices”.

Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
xxxxx@storagecraft.com
http://www.storagecraft.com

----- Original Message -----
From: Shahar Talmi
To: Windows System Software Devs Interest List
Sent: Thursday, August 12, 2004 7:41 PM
Subject: [ntdev] About USB Device and Interface Descriptors

Hi,To my understanding device and interface descriptors contain a USB device class type that recognizes the functions the device implements (audio, storage, printer, etc.).There are a few things I do not understand about the USB device class concept: 1) Interface Class .vs. Device Class -What is the purpose of the device class mentioned in the device descriptor?The class is mentioned in the interface descriptor and a device may have many interfaces.Are there cases where the class in the device descriptor is not 0xFF or 0x00 or the same as in the interface? 2) Credibility of USB device class -Say a USB mass storage device reports an interface class of 0x03 (HID), but it still reports “USB Mass Storage Device” in its device description.Am I right in guessing that the USBSTOR.SYS will still be loaded and a file system will still be mounted regularly?If so, what is the credibility of this parameter if Windows doesn’t really care what it value is? 3) Coverage of USB device class -Isn’t there a networking USB device class?The WI-FI USB device I just bought reports a interface class of 0xFE and subclass 0x01 which according to the documentation is an infra-red device and the infra-red device I bought reports 0xFF in the device class and 0x00 in the interface class (and 0x00 is illegal to my understanding). 4) USB device class and Compatible IDs -From my observation the compatible ID’s a PDO for a USB device sometime contain the class and sub class from the device descriptor and sometimes from the interface descriptor.What is the algorithm for this decision? 5) Composite Devices -To my understanding when a device implements more than one interface the PDO reports a USB\COMPOSITE compatible ID, yet the PDO for the blue-tooth adapter I bought does not report this ID.How can this be? Can someone explain what a Compound Device is (I think I saw it once in a Power Point presentation.)? I hope this is not too many questions in one shot…Thank youShahar


Questions? First check the Kernel Driver FAQ at http://www.osronline.com/article.cfm?id=256

You are currently subscribed to ntdev as: xxxxx@storagecraft.com
To unsubscribe send a blank email to xxxxx@lists.osr.com