A Windows application talks to the PC's USB host controller through a driver. The driver may be built into Windows or it may be custom. Windows includes built-in drivers for standard device classes, such as Human Interface Devices (HID) and Mass Storage Devices. If your firmware supports one of these standard classes, your customer does not need to load a custom driver. If you are designing a device that does not conform to one of the built-in Windows standard device classes, the end user must install a custom driver when your USB device is plugged in the first time.