1. A method of configuring a universal serial bus (USB) connection by a host device, the method comprising: receiving, at a USB port, first identification data that includes a generic device class code and a vendor identifier, and responsive to receiving the first identification data, causing one of: enabling interaction with a peripheral device in accordance with functionality specified by the generic device class code if the host device does not support software associated with the vendor identifier; or if the host device does support software associated with the vendor identifier, sending, at the USB port, a query to the peripheral device indicating that the host device supports software associated with the vendor identifier, the query sent to determine whether the peripheral device supports at least one function different from the functionality specified by the generic device class code; receiving a response to the query, the response containing device information; detecting a simulated detach and then a simulated attach at the USB port; sending, at the USB port, a request for device identification; and receiving, at the USB port, second identification data that includes an indication that the peripheral device supports at least one function different from the functionality defined by the generic device class code.