Patent ID: 7802022

Claim:
A method comprising: detecting a plug-in event of a Universal Serial Bus (USB) device into a computing system, the USB device configured to access from a kernel-mode environment according to a kernel-mode device driver provided by a device vendor; loading a plurality of separate kernel-mode generic device drivers at the computing system for different functionalities supported by the USB device, each of the separate kernel-mode generic device drivers exposing a globally unique identifier (GUID) identifying a function supported by the USB device; determining that the USB device supports a particular function requested by a user-mode software component on the computing system by searching the separate kernel-mode generic device drivers for a GUID identifying the particular function requested by the user-mode software component; and accessing the USB device by the user-mode software component on the computing system for managing the USB device from a user-mode environment rather than the kernel-mode environment, wherein: the user-mode software component communicates with the USB device through a plurality of routines provided by a generic user-mode library that is communicatively coupled to each separate kernel-mode generic device driver loaded for the different functionalities supported by the USB device, and the generic user-mode library is generic to each separate kernel-mode generic device driver and a plurality of different kernel-mode generic device drivers loaded for a plurality of different USB devices once plugged into the computing system.