Claims
- 1. A method comprising:
providing an extended configuration descriptor in firmware of a USB device, the extended configuration descriptor comprising a set of non-standard class codes ; and responsive to receiving a host-specific device request, communicating the extended configuration descriptor to a requester.
- 2. A method as recited in claim 1, wherein the set of non-standard class codes includes non-standard subclass codes.
- 3. A method as recited in claim 1, wherein a non-standard class code comprises a class code or a subclass code that is not defined by the USB DWG.
- 4. A method as recited in claim 1, wherein the extended configuration descriptor further comprises:
a control function section indicating information corresponding to a function for the USB device.
- 5. A method as recited in claim 1, wherein the extended configuration descriptor further comprises:
a header section indicating the number of control function sections for which mappings exist in the extended configuration descriptor; and, one or more control function sections, each control function section indicating information corresponding to a single function for the USB device.
- 6. One or more computer-readable media containing a computer executable program that performs a method as recited in claim 1.
- 7. A method comprising:
querying a USB device using a host-specific device request to obtain a descriptor indicating a set of non-standard class codes; determining one or more compatible device drivers based on the set of codes indicated by the descriptor; and loading the one or more compatible device drivers to control the USB device.
- 8. A method as recited in claim 7, wherein the querying comprises:
communicating a standard USB request to the USB device; and returning the extended configuration descriptor in response to the standard USB request, the extended configuration descriptor corresponding in the USB device to a host specific device request.
- 9. A method as recited in claim 7, wherein the set of non-standard class codes includes non-standard subclass codes.
- 10. A method as recited in claim 7, wherein a non-standard class code comprises a class code or a subclass code that is not defined by the USB DWG.
- 11. A method as recited in claim 7, wherein the extended configuration descriptor comprises:
a control function section indicating information corresponding to a function for the USB device.
- 12. A method as recited in claim 7, wherein the extended configuration descriptor comprises:
a header section indicating the number of control function sections for which mappings exist in the extended configuration descriptor; and, one or more control function sections, each control function section indicating information corresponding to a single function for the USB device.
- 13. One or more computer-readable media containing a computer executable program that performs a method as recited in claim 7.
- 14. In a USB device that responds to device requests from a host, the device requests including USB-specific device requests with corresponding USB-specified request codes and device-specific device requests with corresponding device-specified request codes, the USB-specific device requests including a GET_DESCRIPTOR device request with a corresponding GET_DESCRIPTOR request code, a method of implementing a host-specific device request to determine one or more device drivers to control the USB device, the method comprising:
receiving a GET_DESCRIPTOR device request that specifies a predetermined index; responding to the GET_DESCRIPTOR device request by returning an extended configuration descriptor that corresponds in the USB device to the host-specific device request for a device-specific request code, the extended configuration descriptor specifying a non-standard class code that identifies a device driver to control the USB device.
- 15. A method as recited in claim 14, wherein the extended configuration descriptor comprises:
a control function section indicating information corresponding to a function for the USB device.
- 16. A method as recited in claim 14, wherein the extended configuration descriptor comprises device specific information, the device specific information comprising:
a header section indicating the number of control functions for which mappings exist in the extended configuration descriptor; and, one or more control function sections, each control function section indicating information corresponding to a single function for the USB device.
- 17. One or more computer-readable media containing a computer executable program that performs a method as recited in claim 14.
- 18. A computer-readable medium containing computer-executable instructions utilized by an application program to interact with a USB control device, the computer-executable instructions comprising:
receiving a request from an application program for a set of non-standard class codes and subclass codes that correspond to the USB control device; querying the USB control device to obtain an extended configuration descriptor, the extended configuration descriptor corresponding to a host-specific device request that identifies the set of non-standard class codes and subclass codes; and returning the obtained extended configuration descriptor to the requesting application program.
- 19. A computer-readable storage medium as recited in claim 18, further comprising:
determining, by the requesting application program, one or more default device drivers based on the returned extended configuration descriptor; and loading the one or more default device drivers to control the control device.
- 20. A computer-readable storage medium as recited in claim 18, wherein the obtained extended configuration descriptor comprises:
a control function section indicating information corresponding to a function for the USB device.
- 21. A computer-readable storage medium as recited in claim 18, wherein the obtained extended configuration descriptor comprises:
a header section indicating the number of control functions for which mappings exist in the extended configuration descriptor; and, one or more control function sections, each control function section indicating information corresponding to a single function for the USB device.
- 22. A computer comprising one or more computer-readable media as recited in claim 18.
- 23. One or more computer-readable media containing a computer-executable program for use in conjunction with a USB device that responds to device requests from the program, the device requests including USB-specific device requests with corresponding USB-specified request codes and device-specific device requests with corresponding device-specified request codes, the program comprising:
sending a request to the USB device for an extended configuration descriptor indicating one or more control functions that correspond to the USB device; receiving the extended configuration descriptor from the USB device in response to the request, wherein the extended configuration descriptor corresponds in the USB device to a host-specific device request.
- 24. One or more computer-readable media as recited in claim 23, wherein the extended configuration descriptor comprises:
a control function section indicating information corresponding to a function for the USB device.
- 25. One or more computer-readable media as recited in claim 23, wherein the extended configuration descriptor comprises:
a header section indicating the number of control functions for which mappings exist in the extended configuration descriptor; and, one or more control function sections, each control function section indicating information corresponding to a single function for the USB device.
- 26. One or more computer-readable media as recited in claim 23, wherein the program further comprises:
determining one or more compatible device drivers based on the received extended configuration descriptor.
- 27. A computer comprising one or more computer-readable media as recited in claim 23.
- 28. A USB device comprising:
a processor; a port coupled to the processor; a memory coupled to the processor; an extended configuration descriptor stored in the memory, the extended configuration descriptor comprising information that identifies a set of non-standard compatible IDs corresponding to the USB device; and a control program module stored in the memory, the control program module being configured to send the extended configuration descriptor to a requestor responsive to receiving a host-specific device request at the port.
- 29. A USB device as recited in claim 28, wherein the set non-standard compatible IDs comprise class codes and/or subclass codes that are not defined by the USB DWG.
- 30. A USB device as recited in claim 28, wherein the extended configuration descriptor comprises:
a control function section indicating information corresponding to a function for the USB device.
- 31. A USB device as recited in claim 28, wherein the extended configuration descriptor comprises:
a header section indicating the number of control functions for which mappings exist in the extended configuration descriptor; and, one or more control function sections, each control function section indicating information corresponding to a single function for the USB device.
- 32. A USB device as recited in claim 28, wherein the USB device further comprises:
a plurality of logical devices, each logical device (LD) being a sub-device of the USB device;
wherein the extended configuration descriptor further comprises a set of information corresponding to a plurality of interfaces, each LD corresponding to one or more of the interfaces; and wherein the control program module is further configured to communicate the set of information to a requestor responsive to receiving a single request at the port,.
- 33. A USB device as recited in claim 28, wherein the set of non-standard compatible IDs are not supported by the DWG.
- 34. A USB device as recited in claim 28, wherein the extended configuration descriptor further comprises:
a control function section indicating information corresponding to a function for the USB device.
- 35. A USB device recited in claim 28, wherein the extended configuration descriptor further comprises:
a header section indicating the number of control functions for which mappings exist in the extended configuration descriptor; and, one or more control function sections, each control function section indicating information corresponding to a single function for the USB device.
- 36. A computer-readable medium having stored thereon a data structure, comprising:
a first data field comprising data indicating a count indicating the number of USB control functions for which mappings exist in a descriptor; and one or more second data fields, the number of second data fields based on the count, each second data field comprising data corresponding to a single function for a USB device.
- 37. A computer-readable medium as recited in claim 36, wherein the first data field further comprises:
a total descriptor length indication; and a descriptor version indication.
- 38. A computer-readable medium as recited in claim 36, wherein each second data field further comprises a class code to override a standard USB DWG standard class code.
- 39. A computer-readable medium as recited in claim 38, wherein the class code is selected from a group of identifications comprising a compatible class code and a sub-compatible class code.
- 40. A computer-readable medium as recited in claim 36, wherein each second data field further comprises:
a control function length indication; a total number of interfaces indication, the total number of interfaces being grouped together to generate a control function; and an interface number.
RELATED APPLICATIONS
[0001] This application is related to a prior U.S. patent application Ser. No. 09/498,056, filed Feb. 4, 2000, titled “Host-Specified USB Device Requests”, which is hereby incorporated by reference.