IP Library Granted Patent US 9,544,179
Granted Patent B2
US 9,544,179 · App. 14/281,650 · Granted Jan 10, 2017

Accelerating USB redirection over a network

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,544,179
App. No.
14/281,650
Granted
Jan 10, 2017
Kind
B2
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.

Claims (59)

1. 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.

2. The method of claim 1 , wherein the particular device type comprises signature pad devices.

3. The method of claim 1 , further comprising, if the USB device is not determined to be of the particular device type:

by the client computing device, waiting for a data request from the remote server computing device;

by the client computing device, in response to receiving a data request from the remote server computing device, reading data from the USB device; and

by the client computing device, sending the data to the remote server computing device.

4. The method of claim 1 , wherein the remote server computing device is operable to queue data received from the client computing device.

5. The method of claim 4 , wherein data in the queue is deleted once it reaches a pre-determined threshold age.

6. The method of claim 5 , wherein the pre-determined threshold age may be dynamically determined, and wherein the pre-determined threshold age corresponds to an amount of time elapsed since the data was received by the remote server computing device.

7. The method of claim 4 wherein the remote server computing device provides data from the queue in response to a request from an application to read the USB device.

8. The method of claim 1 , wherein redirecting the USB device to the remote server computing device is performed for a particular class of USB transfer data.

9. The method of claim 8 , wherein the particular class of USB transfer data comprises one or more of the following:

USB BULK data;

USB INTERRUPT data;

USB ISOCHRONOUS data; or

USB CONTROL data.

10. The method of claim 1 , wherein the USB device is a composite device.

11. 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.

12. The information-handling system of claim 11 , wherein the particular device type comprises signature pad devices.

13. The information-handling system of claim 11 , further comprising, if the USB device is not determined to be of the particular device type:

wait for a data request from the remote server computing device;

in response to receiving a data request from the remote server computing device, read data from the USB device; and

send the data to the remote server computing device.

14. The information-handling system of claim 11 , wherein the remote server computing device is operable to queue data received from the client computing device.

15. The information-handling system of claim 14 , wherein data in the queue is deleted once it reaches a pre-determined threshold age.

16. The information-handling system of claim 15 , wherein the pre-determined threshold age may be dynamically determined, and wherein the pre-determined threshold age corresponds to an amount of time elapsed since the data was received by the server computing device.

17. The information-handling system of claim 14 , wherein the remote server computing device provides data from the queue in response to a request from an application to read the USB device.

18. The information-handling system of claim 11 , wherein redirecting the USB device to the remote server computing device is performed for a particular class of USB transfer data.

19. The information-handling system of claim 18 , wherein the particular class of USB transfer data comprises one or more of the following:

USB BULK data;

USB INTERRUPT data; or

USB CONTROL data.

20. The information-handling system of claim 11 , wherein the USB device is a composite device.

Assignments (15)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061324/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL USA L.P.; ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL, L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/0001 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
RELEASE OF REEL 033625 FRAME 0688 (TL) Recorded Sep 14, 2016
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; COMPELLENT TECHNOLOGIES, INC.; SECUREWORKS, INC.
Reel/Frame 040027/0757 →
RELEASE OF REEL 033625 FRAME 0748 (NOTE) Recorded Sep 14, 2016
From: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; COMPELLENT TECHNOLOGIES, INC.; SECUREWORKS, INC.
Reel/Frame 040027/0050 →
RELEASE OF REEL 033625 FRAME 0711 (ABL) Recorded Sep 13, 2016
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; COMPELLENT TECHNOLOGIES, INC.; SECUREWORKS, INC.
Reel/Frame 040016/0903 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 9, 2015
From: VENKATESH, RAMANUJAM KANIYAR; BIRADAR, VISHWANATH; BHASKAR, MANISH; RAJU, SRIRAM KUMAR; KAUSHIK, PUNEET
To: DELL PRODUCTS L.P.
Reel/Frame 034922/0916 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (NOTES) Recorded Aug 27, 2014
From: COMPELLENT TECHNOLOGIES, INC.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; SECUREWORKS, INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 033625/0748 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (ABL) Recorded Aug 27, 2014
From: COMPELLENT TECHNOLOGIES, INC.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; SECUREWORKS, INC.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 033625/0711 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (TERM LOAN) Recorded Aug 27, 2014
From: COMPELLENT TECHNOLOGIES, INC.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; SECUREWORKS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 033625/0688 →