IP Library Granted Patent US 11,755,765
Granted Patent B2
US 11,755,765 · App. 17/948,994 · Granted Sep 12, 2023

Optimized directory enumeration and data copy for client drive redirection in virtual desktops

Inventors: Weigang Huang (Beijing, CN); Eric Yueting Zhang (Beijing, CN); Hui Yuan (Beijing, CN); Hui Zhang (Beijing, CN)
Assignee: VMware, Inc.
G06F21/6218G06F21/629H04L67/141H04L67/563H04L67/568H04L67/01
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 11,755,765
App. No.
17/948,994
Granted
Sep 12, 2023
Kind
B2
Abstract

System and methods are provided for improved directory enumeration and data copy with shared client directories in virtual desktops by quickly and efficiently retrieving shared directory entries from the client device over a separate fast channel and caching them on the virtual desktop, where the directory entries can be available locally to applications in the virtual desktop for performing directory enumeration. The fast channel can further be utilized for efficiently transferring data in data copy operations between the client device and the virtual desktop.

Claims (66)

1. A method, comprising:

establishing, over a network, a virtual desktop session between a virtual desktop executing on a host server and a client device;

presenting a virtual drive in the virtual desktop corresponding to a shared client drive located on the client device, wherein a redirection driver executing in the virtual desktop is configured to route input and output requests targeting the virtual drive made by applications running in the virtual desktop to the shared client drive on the client device;

receiving a request at a file manager in the virtual desktop to copy file data from a source folder located in the shared client drive on the client device to a target folder on the virtual desktop;

preventing the file manager from performing the file data copy;

by a fast channel client operating on the client device, reading the file data from the source folder and conveying the data over a side channel to a fast channel server operating in the virtual desktop; and

by the fast channel server, writing the file data to the target folder.

2. The method of claim 1 , further comprising:

conveying the path of the source folder to the fast channel client on the client device for reading the file data from the source folder; and

conveying the target folder path to the fast channel server on the virtual desktop for writing the file data to the target folder.

3. The method of claim 1 , wherein, at least one of:

the fast channel client uses multiple threads to read the file data from the source folder; or

the fast channel server uses multiple threads to write the file data to the target folder.

4. The method of claim 1 , further comprising causing the file manager to simulate copying the file data to create an appearance for the user that the file manager is performing the file data copy.

5. The method of claim 1 , further comprising:

by a client drive redirection (CDR) accelerator executing in the virtual desktop, receiving directory enumeration information for a directory corresponding to the file data in the shared client drive from the client device;

caching the received directory enumeration information in a directory cache residing on the virtual desktop;

intercepting a request targeting the virtual drive for at least a portion of the directory enumeration information; and

completing the request based on the directory enumeration information in the directory cache.

6. The method of claim 1 , wherein the fast channel client executing on the client device queries the shared client drive for the directory enumeration information and conveys the directory enumeration information to the CDR accelerator over the side channel.

7. The method of claim 1 , wherein the side channel is a protocol virtual channel.

8. A computing device, comprising:

at least one processor; and

memory including instructions that, when executed by the at least one processor, cause the computing device to perform the steps of:

establishing, over a network, a virtual desktop session between a virtual desktop executing on a host server and a client device;

presenting a virtual drive in the virtual desktop corresponding to a shared client drive located on the client device, wherein a redirection driver executing in the virtual desktop is configured to route input and output requests targeting the virtual drive made by applications running in the virtual desktop to the shared client drive on the client device;

receiving a request at a file manager in the virtual desktop to copy file data from a source folder located in the shared client drive on the client device to a target folder on the virtual desktop;

preventing the file manager from performing the file data copy;

by a fast channel client operating on the client device, reading the file data from the source folder and conveying the data over a side channel to a fast channel server operating in the virtual desktop; and

by the fast channel server, writing the file data to the target folder.

9. The computing device of claim 8 , wherein the memory further includes instructions that when executed by the at least one processor, cause the computing device to perform the steps of:

conveying the path of the source folder to the fast channel client on the client device for reading the file data from the source folder; and

conveying the target folder path to the fast channel server on the virtual desktop for writing the file data to the target folder.

10. The computing device of claim 8 , wherein, at least one of:

the fast channel client uses multiple threads to read the file data from the source folder; or

the fast channel server uses multiple threads to write the file data to the target folder.

11. The computing device of claim 8 , wherein the memory further includes instructions that when executed by the at least one processor, cause the computing device to perform the steps of:

causing the file manager to simulate copying the file data to create an appearance for the user that the file manager is performing the file data copy.

12. The computing device of claim 8 , wherein the memory further includes instructions that when executed by the at least one processor, cause the computing device to perform the steps of:

by a client drive redirection (CDR) accelerator executing in the virtual desktop, receiving directory enumeration information for a directory corresponding to the file data in the shared client drive from the client device;

caching the received directory enumeration information in a directory cache residing on the virtual desktop;

intercepting a request targeting the virtual drive for at least a portion of the directory enumeration information; and

completing the request based on the directory enumeration information in the directory cache.

13. The computing device of claim 8 , wherein the fast channel client executing on the client device queries the shared client drive for the directory enumeration information and conveys the directory enumeration information to the CDR accelerator over the side channel.

14. The computing device of claim 8 , wherein the side channel is a protocol virtual channel.

15. A non-transitory computer readable storage medium comprising one or more sequences of instructions, the instructions when executed by one or more processors causing the one or more processors to execute the operations of:

establishing, over a network, a virtual desktop session between a virtual desktop executing on a host server and a client device;

presenting a virtual drive in the virtual desktop corresponding to a shared client drive located on the client device, wherein a redirection driver executing in the virtual desktop is configured to route input and output requests targeting the virtual drive made by applications running in the virtual desktop to the shared client drive on the client device;

receiving a request at a file manager in the virtual desktop to copy file data from a source folder located in the shared client drive on the client device to a target folder on the virtual desktop;

preventing the file manager from performing the file data copy;

by a fast channel client operating on the client device, reading the file data from the source folder and conveying the data over a side channel to a fast channel server operating in the virtual desktop; and

by the fast channel server, writing the file data to the target folder.

16. The non-transitory computer readable storage medium of claim 15 , further comprising instructions that when executed by the one or more processors cause the one or more processors to execute the operations of:

conveying the path of the source folder to the fast channel client on the client device for reading the file data from the source folder; and

conveying the target folder path to the fast channel server on the virtual desktop for writing the file data to the target folder.

17. The non-transitory computer readable storage medium of claim 15 , wherein, at least one of:

the fast channel client uses multiple threads to read the file data from the source folder; or

the fast channel server uses multiple threads to write the file data to the target folder.

18. The non-transitory computer readable storage medium of claim 15 , further comprising instructions that when executed by the one or more processors cause the one or more processors to execute the operations of:

causing the file manager to simulate copying the file data to create an appearance for the user that the file manager is performing the file data copy.

19. The non-transitory computer readable storage medium of claim 15 , further comprising instructions that when executed by the one or more processors cause the one or more processors to execute the operations of:

by a client drive redirection (CDR) accelerator executing in the virtual desktop, receiving directory enumeration information for a directory corresponding to the file data in the shared client drive from the client device;

caching the received directory enumeration information in a directory cache residing on the virtual desktop;

intercepting a request targeting the virtual drive for at least a portion of the directory enumeration information; and

completing the request based on the directory enumeration information in the directory cache.

20. The non-transitory computer readable storage medium of claim 15 , wherein the fast channel client executing on the client device queries the shared client drive for the directory enumeration information and conveys the directory enumeration information to the CDR accelerator over the side channel.

Assignments (3)
PATENT ASSIGNMENT Recorded Aug 5, 2024
From: VMWARE LLC
To: OMNISSA, LLC
Reel/Frame 068327/0365 →
SECURITY INTEREST Recorded Jul 3, 2024
From: OMNISSA, LLC
To: UBS AG, STAMFORD BRANCH
Reel/Frame 068118/0004 →
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0395 →
Priority Claims (1)
WO PCT/CN2021/072445 · Jan 18, 2021 · international
Continuity (2)
Continuation 17183774 · Feb 24, 2021
Related Publication 20230052758A1 · Feb 16, 2023