A USB host controller driver controls the way that peripheral devices communicate with a computer's main system. The driver establishes contact between a USB device, such as a keyboard or printer, and ensures that the computer's operating system recognizes it. Many operating systems communicate directly with a USB host controller driver to ensure that computer users do not have to install individual drivers for each device.
Universal serial bus (USB) devices all communicate with a computer's operating system through a standard programming language. The majority of the time, a USB host controller driver will interact with C++ or ANSI programming. When a computer user plugs a USB device, such as a cable modem, into one of the ports, the operating system automatically recognizes the device. Depending upon the system, it may automatically install device drivers, enabling operation.
Standard USB devices, such as a mouse and keyboard, will typically be automatically recognized by a computer's USB host controller driver. Some USB control protocol will combine or bundle the communication process of several standard devices. This helps create efficiency when data needs to be simultaneously transferred. For example, computer users often input data from a keyboard and mouse within a word processing program at the same time.
With bundling, the USB host controller driver may get the computer to communicate with several devices through one communication port. The reality is that each of these devices appears to be plugged into different ports on the hardware's interface. Within the programming language is the direction for the computer to recognize both inputs as belonging to the same port. The driver may also be responsible for redirecting power from the main system through the USB cables that run to each separate device.
In the majority of cases, the USB host will determine how each device receives its power. Some USB protocol allows devices to be connected and disconnected while the computer is on. Other programming interfaces require that the computer be powered off and then rebooted before it will recognize a USB device. The SCSI interface is one protocol that will not allow users to simply "plug and play."
Data transmission speeds and bandwidth are also controlled by a USB host driver. Some drivers support hi-speed transmissions while others only work in a low-speed environment. There are some USB host controller drivers that work exclusively with video and audio devices that need the guarantee of a certain bandwidth.