1. A method of configuring a universal serial bus (USB) connection by a peripheral device comprising: detecting an attach event at a USB port on the peripheral device; receiving, at the USB port, a first request for device identification; sending, at the USB port, a first identification data that includes a generic device class code and a vendor identifier; receiving, at the USB port, a query related to the first identification data, the query indicating software associated with the vendor identifier is supported by the sender of the query; responding to the query with further device information; simulating a detach and then an attach at the USB port; receiving, at the USB port, a second request for device identification; and sending, at the USB port, a second identification data that includes an indication that the peripheral device supports at least one function from a plurality of functions that are different from the functionality defined by the generic device class code.