Accelerating USB redirection over a network
AssigneeDell Products L.P.
InventorsRamanujam Kaniyar Venkatesh, Vishwanath Biradar, Manish Bhaskar, Sriram Kumar Raju, Puneet Kaushik
Life of this patent
Estimating the term…
Abstract
In particular embodiments, a client computing device identifies a USB device connected to the client computing device. The client computing device redirects the USB device to a remote server computing device. The client computing device determines whether the USB device is of a particular device type, and if the USB device is determined to be of the particular device type, then the client computing device requests data from the USB device. Upon receiving a response from the USB device comprising data, the client computing device sends the data to the remote server computing device.
Claims20
A method comprising:
- by a client computing device, identifying a Universal Serial Bus (USB) device connected to the client computing device, wherein one or more interfaces are associated with the USB device;
- by an interface redirection function driver of the client computing device, reading one or more descriptors associated with the USB device, wherein the one or more descriptors comprise at least one of a device descriptor, a configuration descriptor, and an interface descriptor;
- by the interface redirection function driver, parsing the one or more descriptors to create one or more independent virtual devices based, at least in part, on functionality of the one or more interfaces;
- grouping at least one of the one or more interfaces into at least one of the one or more independent virtual devices based, at least in part, on functionality of the one or more interfaces, wherein the system is adapted to group the one or more interfaces with a plurality of the one or more independent virtual devices;
- by the client computing device, redirecting the grouped one or more interfaces to a remote server computing device such that the one or more independent virtual devices associated with the grouped one or more interfaces are available to one or more applications associated with the remote server computing device as if locally installed at the remote server computing device;
- by the client computing device, passing to the remote server computing device at least one of an interface number associated with each of the one or more interfaces and the one or more descriptors;
- by the client computing device, determining whether the USB device is of a particular device type;
- and
- if the USB device is determined to be of the particular device type:
- by the client computing device, notifying the remote server computing device of the determined particular device type;
- by the client computing device, receiving, from the remote server computing device, a request for data from the USB device;
- by the client computing device, requesting the data from the USB device;
- and
- upon receiving a response from the USB device comprising the requested data, sending the response to the remote server computing device.
An information-handling system comprising:
- one or more processors;
- and
- a memory coupled to the processors comprising instructions executable by the processors, the processors being operable when executing the instructions to:
- identify a Universal Serial Bus (USB) device connected to a client computing device, wherein one or more interfaces are associated with the USB device;
- read one or more descriptors associated with the USB device, wherein the one or more descriptors comprise at least one of a device descriptor, a configuration descriptor, and an interface descriptor;
- parse the one or more descriptors to create one or more independent virtual devices associated with the one or more interfaces;
- group at least one of the one or more interfaces into at least one of the one or more independent virtual devices based, at least in part, on functionality of the one or more interfaces, wherein the system is adapted to group the one or more interfaces with a plurality of the one or more independent virtual devices;
- redirect the grouped one or more interfaces to a remote server computing device such that the one or more independent virtual devices associated with the grouped one or more interfaces are available to one or more applications associated with the remote server computing device as if locally installed at the remote server computing device;
- pass to the remote server computing device at least one of an interface number associated with each of the one or more interfaces and the one or more descriptors;
- determine whether the USB device is of a particular device type;
- and
- if the USB device is determined to be of the particular device type:
- notify the remote server computing device of the determined particular device type;
- receive from the remote server computing device a request for data from the USB device;
- request the data from the USB device;
- and
- upon receiving a response from the USB device comprising the requested data, send the response to the remote server computing device.
Dependencies are inferred from the claim text.