Handling CDC and WMCDC Interface Collections
The USB generic parent driver handles Wireless Handset Control Model (WHCM) interfaces in a special way, as described in Support for Wireless Mobile Communications Device Class and Enumerating Interface Collections on WMCDC.
The following list summarizes the most important ways in which the handling of CDC and WMCDC interface collections differs from that of other interface collections:
- The wireless mobile communication device class permits a limited amount of nesting of interface collections. In particular, a logical handset interface collection (that is, a WHCM interface collection) can contain other subordinate interface collections. For example, a WMCDC-compliant phone can have an WHCM interface collection, which in turn, contains an abstract control model collection and an OBEX collection.
- You can configure the USB generic parent driver to not enumerate WHCM interface collections. WHCM interface collections that are not enumerated remain hidden, but the generic parent driver uses information from the union function descriptors (UFDs) that belong to an WHCM interface collections to group and enumerate subordinate interface collections.
- You can configure the USB generic parent driver to create separate physical device objects (PDOs) for OBEX control model interface collections, or to create a single PDO for all OBEX control model interface collections.
- The list of interface numbers in a UFD can have gaps. That is, the interface numbers of a UFD can refer to interfaces that are not contiguous. This type of numbering is not valid, for example, for the USB Interface Association Descriptor (IAD), whose interfaces must be contiguous and have sequential numbers.
- UFDs can include related audio interface collections
- Hardware identifiers (IDs) for CDC and WMCDC interface collections must include the interface subclass. Other USB interfaces, whose hardware IDs contain a MI_%02X suffix that specifies the interface number, do not contain information about the interface subclass. The subclass information is included in the hardware ID to allow vendors to provide INF files with hardware ID matches for specific interface collections, instead of relying on the position of the interface in the descriptor layout to determine which driver to load for the collection. The subclass information in the hardware ID also allows a gradual migration path from current vendor-supplied drivers that manage WMCDC interface collections to alternatives, such as user-mode drivers. For examples of CDC and WMCDC hardware IDs, see CDC and WMCDC Control Models. For a general discussion of how USB interface hardware IDs are formatted, see Identifiers for USB Devices.
- Support for the Wireless Mobile Communication Device Class
- Enumeration of Interface Collections on USB Composite Devices
- USB Generic Parent Driver (Usbccgp.sys)