IP Library Granted Patent US 10,223,321
Granted Patent B2
US 10,223,321 · App. 15/087,145 · Granted Mar 5, 2019

Combining redirected USB interfaces into a single composite device

Inventor: Gokul Thiruchengode Vajravel (Bangalore, IN)
Assignee: DELL PRODUCTS L.P.
G06F13/4282G06F13/385
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 10,223,321
App. No.
15/087,145
Filed
Mar 31, 2016
Granted
Mar 5, 2019
Kind
B2
Art Unit
2457
USPC
709/203
Abstract

When client-side USB redirection techniques redirect an interface as a simple device, multiple redirected interfaces can be combined on the server side into a single composite device. When redirecting an interface, the client-side proxy can include an interface hint identifying the interface number in the device arrival notification sent to the server-side agent. Upon receiving multiple device arrival notifications that each include an interface hint, the agent can recombine the appropriate information to generate composite device information which will represent a composite device that includes each interface. The agent can then provide this composite device information to the virtual bus driver to initiate the process of loading the appropriate drivers for the composite device. Accordingly, even though each redirected interface of the composite device is reported to the server-side agent individually, the operating system on the server will still see a composite device.

Claims (56)

1. A method for combining multiple redirected USB interfaces into a single composite device, the method comprising:

detecting, at a client-side proxy, that a plurality of interfaces of a composite device are to be redirected to a server;

creating, by the client-side proxy and for each of the plurality of interfaces, a device arrival notification that includes device information pertaining to the interface such that a separate device arrival notification is created for each of the plurality of interfaces of the composite device that are to be redirected to the server;

adding, by the client-side proxy, an interface hint to each device arrival notification, the interface hint identifying an interface number of the corresponding interface within the composite device;

sending, by the client-side proxy, the plurality of device arrival notifications to an agent on the server;

receiving, by the agent on the server, the plurality of device arrival notifications;

detecting, by the agent and for each device arrival notification, the presence of the interface hint in the device arrival notification;

generating, by the agent, composite device information by combining the device information from each of the device arrival notifications such that the composite device information defines each of the plurality of interfaces as interfaces of a composite device on the server; and

causing, by the agent, the composite device information to be reported to an operating system on the server to thereby cause the composite device having the plurality of interfaces to be enumerated on the server.

2. The method of claim 1 , wherein the plurality of interfaces of the composite device are less than all the interfaces of the composite device such that at least one interface of the composite device is not redirected.

3. The method of claim 1 , wherein the device information pertaining to the interface that is included in each device arrival notification comprises a device descriptor that includes a device class field that is assigned a class code of the interface.

4. The method of claim 3 , wherein generating composite device information comprises generating a new device descriptor that includes a device class field that is assigned a class code representing a composite device.

5. The method of claim 4 , wherein generating composite device information comprises, for each device arrival notification:

generating a new interface descriptor pertaining to the new device descriptor;

extracting the class code of the interface from the device descriptor included in the device arrival notification; and

assigning the class code of the interface to an interface class field defined in the new interface descriptor.

6. The method of claim 5 , wherein generating composite device information comprises:

generating a new configuration descriptor that includes a number of interfaces field; and

setting the value of the number of interfaces field based on the number of device arrival notifications.

7. The method of claim 1 , further comprising:

detecting, at the client-side proxy, that a device is to be redirected;

creating an additional device arrival notification that includes device information pertaining to the device; and

sending the additional device arrival notification without adding an interface hint to the additional device arrival notification.

8. The method of claim 1 , further comprising:

receiving an additional device arrival notification;

detecting that the additional device arrival notification does not include an interface hint; and

routing the additional device arrival notification to a virtual bus driver on the server.

9. A method for combining multiple redirected USB interfaces into a single composite device, the method comprising:

receiving, by an agent on a server, a plurality of device arrival notifications, each device arrival notification including device information pertaining to a redirected interface of a composite device;

detecting, by the agent and for each device arrival notification, the presence of an interface hint in the device arrival notification;

generating, by the agent, composite device information by combing the device information from each of the device arrival notifications such that the composite device information defines each of the interfaces as interfaces of a composite device on the server; and

causing, by the agent, the composite device information to be reported to an operating system on the server to thereby cause the composite device having the plurality of interfaces to be enumerated on the server.

10. The method of claim 9 , wherein the device information pertaining to a redirected interface of a composite device represents the redirected interface as a simple device.

11. The method of claim 9 , wherein the interface hint in each device arrival notification defines an interface number assigned to the corresponding interface.

12. The method of claim 9 , wherein the device information pertaining to a redirected interface of a composite device comprises a device descriptor that includes a device class field that is assigned a class code of the interface.

13. The method of claim 12 , wherein generating composite device information that includes the device information from each of the device arrival notifications comprises:

generating a new device descriptor that includes a device class field that is assigned a class code representing a composite device.

14. The method of claim 13 , wherein generating composite device information that includes the device information from each of the device arrival notifications further comprises:

for each device arrival notification, generating a new interface descriptor that includes an interface class field, and assigning the class code of the corresponding interface to the interface class field.

15. The method of claim 14 , wherein generating composite device information that includes the device information from each of the device arrival notifications further comprises:

generating a new configuration descriptor that includes a number of interfaces field; and

setting the value of the number of interfaces field based on the number of device arrival notifications.

16. The method of claim 9 , further comprising:

receiving an additional device arrival notification that includes device information;

detecting that the additional device arrival notification does not include an interface hint; and

routing the device information from the additional device arrival notification to a virtual bus driver.

17. The method of claim 9 , wherein causing the composite device information to be reported to the operating system comprises routing the composite device information to a virtual bus driver.

18. One or more computer storage media storing computer executable instructions which when executed in a computing system implement a method for combining multiple redirected USB interfaces into a single composite device, the method comprising:

detecting, at a client-side proxy, that a plurality of interfaces of a composite device are to be redirected to a server;

creating, by the client-side proxy and for each of the plurality of interfaces, a device arrival notification that includes a device descriptor having a device class field that is assigned a class code of the interface such that a separate device arrival notification is created for each of the plurality of interfaces of the composite device that are to be redirected to the server;

adding, by the client-side proxy, an interface hint to each device arrival notification, the interface hint identifying an interface number of the corresponding interface within the composite device;

sending, by the client-side proxy, the plurality of device arrival notifications to an agent on the server;

in response to detecting the interface hints included in the device arrival notifications, creating, by the agent, a new device descriptor that includes a device class field that is assigned a class code representing a composite device and an interface descriptor for each device arrival notification, each interface descriptor being assigned the class code of the corresponding interface; and

causing, by the agent, the new device descriptor to be reported to an operating system on the server to thereby cause the composite device having the plurality of interfaces to be enumerated on the server.

19. The computer storage media of claim 18 , wherein the method further comprises:

creating, by the agent, a new configuration descriptor that includes a number of interfaces field that is assigned a value based on the number of device arrival notifications.

Assignments (17)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (050724/0466) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.)
Reel/Frame 060753/0486 →
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: 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; 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 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Oct 15, 2019
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 050724/0466 →
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: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/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: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
RELEASE OF REEL 038665 FRAME 0041 (TL) Recorded Sep 14, 2016
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; SECUREWORKS, CORP.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040028/0375 →
RELEASE OF REEL 038664 FRAME 0908 (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.; SECUREWORKS, CORP.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040027/0390 →
RELEASE OF REEL 038665 FRAME 0001 (ABL) Recorded Sep 13, 2016
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; SECUREWORKS, CORP.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040021/0348 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (NOTES) Recorded May 11, 2016
From: DELL SOFTWARE INC.; WYSE TECHNOLOGY, L.L.C.; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS FIRST LIEN COLLATERAL AGENT
Reel/Frame 038664/0908 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (TERM LOAN) Recorded May 11, 2016
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; WYSE TECHNOLOGY, L.L.C.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 038665/0041 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (ABL) Recorded May 11, 2016
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; WYSE TECHNOLOGY, L.L.C.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 038665/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 31, 2016
From: VAJRAVEL, GOKUL THIRUCHENGODE
To: DELL PRODUCTS L.P.
Reel/Frame 038165/0057 →
Continuity (1)
Related Publication 20170289313A1 · Oct 5, 2017