1. A method comprising: defining a power management policy for a USB device plugged into a computing system, wherein the power management policy is defined through a plurality of routines provided by a generic user-mode library, the plurality of routines being implemented as an application programming interface, the generic user-mode library being generic to a plurality of different USB devices, wherein a separate kernel-mode generic device driver is loaded for each USB device plugged into the computing system or for each functionality supported by the USB device, wherein the kernel-mode generic device driver is configured to enable a plurality of different USB devices to operate once plugged into the computing system; determining when the USB device enters a suspend mode by using the defined power management policy; entering the suspend mode such that the USB device is switched to a low-power state by invoking a user-mode software component, the generic user-mode library being communicatively coupled to a kernel-mode generic device driver so that the user-mode software component manages the USB device by invoking routines in a user-mode environment rather than by invoking the routines in a kernel-mode environment; and once the USB device enters the suspend mode, then switching the computing system to a lower-power state.