IP Library Granted Patent US 10,409,494
Granted Patent B2
US 10,409,494 · App. 15/418,131 · Granted Sep 10, 2019

Enabling redirection of mass storage devices of any interface

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,409,494
App. No.
15/418,131
Granted
Sep 10, 2019
Kind
B2
Abstract

Mass storage devices of any interface can be redirected to a server. When a mass storage device is connected to a client terminal, a client-side proxy can obtain information about the device including the interface by which the device connects to the client terminal. The proxy can relay this information to a server-side agent which can instruct a VMiniport enumerator to enumerate the mass storage device using the interface specified in the information. When the VMiniport driver is loaded, the agent can also use the information to cause the VMiniport driver and the storport driver to be initialized in accordance with the specified interface. The VMiniport driver and storport driver will therefore be configured to communicate IO requests targeting the mass storage device in a format appropriate for the interface.

Claims (43)

1. A method, implemented in a virtual desktop infrastructure environment, for redirecting a mass storage device, the method comprising:

providing, on a server, and agent and a VMiniport enumerator, the agent being configured to communicate with a proxy on a client terminal to enable redirection of mass storage devices that employ various different interfaces to connect to the client terminal, the VMiniport enumerator being configured to enumerate VMiniport drivers that are specific to the various different interfaces;

in response to a first mass storage device being connected to the client terminal with which the server has established a remote display protocol connection, receiving, at the agent, disk information about the first mass storage device, the disk information specifying a first interface of the various different interfaces by which the first mass storage device is coupled to the client terminal;

providing, by the agent and to the VMiniport enumerator, at least a portion of the disk information that the agent received from the client terminal, the portion of the disk information including the first interface by which the first mass storage device is coupled to the client terminal; and

determining, by the VMiniport enumerator, that the portion of the disk information received from the agent includes the first interface rather that another interface of the various different interfaces;

based on the determination, causing, by the VMiniport enumerator a VMiniport driver specific to the first interface to be loaded and initialized on the server.

2. The method of claim 1 , further comprising:

causing a corresponding storport driver specific to the first interface to be loaded and initialized on the server.

3. The method of claim 2 , wherein causing the VMiniport and storport drivers specific to the first interface to be initialized comprises setting a value of an adapter interface type field based on the first interface.

4. The method of claim 3 , wherein the adapter interface type field is the AdapterinterfaceType field of a data structure employed by the VMiniport driver or the storport driver.

5. The method of claim 4 , wherein the AdapterinterfaceType field is set in one or both of the VIRTUAL_HW_INITIALIZATION_DATA or PORT_CONFIGURATION_INFORMATION structures.

6. The method of claim 2 , wherein the disk information includes one or more of a vendor Id, a device Id, a maximum transfer length, or a maximum number of concurrent IO requests, and wherein causing the VMiniport and storport drivers specific to the first interface to be initialized comprises providing one or more of the vendor Id, the device Id, the maximum transfer length, or the maximum number of concurrent IO requests to the VMiniport driver.

7. The method of claim 6 , wherein the one or more of the vendor Id, the device Id, the maximum transfer length, or the maximum number of concurrent IO requests are set in one or more data structures employed by the VMiniport driver or a corresponding storport driver.

8. The method of claim 1 , wherein causing the VMiniport driver specific to the first interface to be loaded and initialized on the server comprises creating, by the VMiniport enumerator, a device object on the server for the first mass storage device.

9. The method of claim 1 , wherein the first interface is an interface other than USB.

10. The method of claim 1 , wherein the first interface comprises a storage bus.

11. The method of claim 1 , further comprising:

receiving, at the VMiniport driver, TO requests; and

routing the IO requests to the agent for delivery to the client terminal.

12. The method of claim 1 , further comprising:

receiving, at the agent, second disk information about a second mass storage device, the second disk information specifying a second interface by which a second mass storage device is coupled to the client terminal;

providing, by the agent and to the VMiniport enumerator, at least a portion of the second disk information, the portion of the second disk information including a different interface than the second interface; and

employing, by the VMiniport enumerator, the different interface to cause a VMiniport driver specific to the different interface to be loaded and initialized on the server.

13. The method of claim 12 , wherein the agent provides the different interface in response to determining that the second interface specified in the second disk information is not supported on the server.

14. The method of claim 12 , further comprising:

receiving, at the proxy, IO requests that are formatted in accordance with the different interface; and

converting the IO requests into a format that is supported by the second interface.

15. The method of claim 14 , wherein the IO requests are also formatted in accordance with a server-side file system, the method further comprising:

converting the IO requests into a format that is supported by a client-side block device driver.

16. One or more computer storage media storing computer executable instructions which when executed implement the following components of a virtual desktop infrastructure:

a proxy that is configured to execute on a client terminal and to obtain disk information about a mass storage device that is connected to the client terminal, the disk information specifying by which interface of various different interfaces the mass storage device is coupled to the client terminal;

an agent that is configured to execute on a server and to establish a remote display protocol connection with the proxy, the agent being further configured to receive the disk information; and

a VMiniport enumerator that is configured to execute on the server and to receive the disk information from the agent, the VMiniport enumerator being further configured to evaluate the disk information to determine by which interface of the various different interfaces the mass storage device is coupled to the client terminal, the VMiniport enumerator being further configured to cause in response to the determination, a VMiniport driver specific to the determined interface to be loaded on server.

17. The computer storage media of claim 16 , wherein the agent or the VMiniport enumerator is further configured to provide at least some of the disk information to the VMiniport driver to cause the VMiniport driver to be initialized in accordance with the provided disk information.

18. The computer storage media of claim 17 , wherein a corresponding storport driver is also initialized in accordance with the provided disk information.

19. The computer storage media of claim 16 , wherein the agent is further configured to receive additional disk information specifying a particular interface by which a second mass storage device is coupled to the client terminal, determine that the server does not support the particular interface specified in the additional disk information, to change the unsupported interface to an interface of the various different interfaces that is supported by the server, and to provide the supported interface to the VMiniport enumerator rather than the unsupported interface.

20. A method, performed by a virtual desktop infrastructure, for redirecting a mass storage device, the method comprising:

providing, on a server, an agent and a VMiniport enumerator, the agent being configured to communicate with a proxy on a client terminal to enable redirection of mass storage devices that employ various different interfaces to connect to the client terminal, the VMiniport enumerator being configured to enumerate VMiniport drivers that are specific to the various different interfaces;

in response to a mass storage device being connected to the client terminal, determining, by the proxy on the client terminal, a particular interface of the various different interfaces by which the mass storage device is connected to the client terminal;

sending, by the proxy, the particular interface to the agent on the server;

sending, by the agent, a request to create a VMiniport driver to the VMiniport enumerator, the request including the particular interface;

determining, by the VMiniport enumerator, that the request to create the VMiniport driver includes the particular interface rather that another interface of the various different interfaces; and

creating, by the VMiniport enumerator, a device object corresponding to the particular interface.

Assignments (13)
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 (051302/0528) 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 IP HOLDING COMPANY LLC; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.); SECUREWORKS CORP.
Reel/Frame 060438/0593 →
MERGER Recorded May 9, 2022
From: WYSE TECHNOLOGY L.L.C.
To: DELL MARKETING CORPORATION
Reel/Frame 059912/0109 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (041829/0873) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.)
Reel/Frame 059803/0724 →
RELEASE OF SECURITY INTEREST AT REEL 051449 FRAME 0728 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.; SECUREWORKS CORP.; EMC CORPORATION
Reel/Frame 058002/0010 →
RELEASE OF SECURITY INTEREST AT REEL 041808 FRAME 0516 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL INTERNATIONAL, L.L.C.; DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; MOZY, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058297/0573 →
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 Dec 31, 2019
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.; SECUREWORKS CORP.; EMC CORPORATION
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 051449/0728 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Dec 16, 2019
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.; SECUREWORKS CORP.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 051302/0528 →
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 →
PATENT SECURITY INTEREST (NOTES) Recorded Feb 28, 2017
From: DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; MOZY, INC.; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 041829/0873 →
PATENT SECURITY INTEREST (CREDIT) Recorded Feb 24, 2017
From: DELL INTERNATIONAL, L.L.C.; DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; MOZY, INC.; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 041808/0516 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 27, 2017
From: VAJRAVEL, GOKUL THIRUCHENGODE; VENKATESH, RAMANUJAM KANIYAR
To: WYSE TECHNOLOGY L.L.C.
Reel/Frame 041109/0810 →