IP Library Granted Patent US 12,455,756
Granted Patent B2
US 12,455,756 · App. 17/671,608 · Granted Oct 28, 2025

Dynamic connection switching in virtual desktops under nested mode

Inventors: Huiyong Huo (Beijing, CN); Zhongzheng Tu (Beijing, CN); Mingsheng Zang (Beijing, CN); Weigang Huang (Beijing, CN); Yueting Zhang (Beijing, CN)
Assignee: Omnissa, LLC
G06F9/45558G06F9/452G06F9/45545G06F2009/45575G06F2009/45595
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 12,455,756
App. No.
17/671,608
Granted
Oct 28, 2025
Kind
B2
Abstract

System and method are described for dynamically switching redirection of features between a first and a second virtual desktop that are accessed by a client in nested mode. To connect to the desktops in the nested configuration, the client can establish a first session on the first virtual desktop and then establish a session on the second virtual desktop within the first desktop. A connection can be established between the client and an agent in the first desktop for exchanging feature redirection data corresponding to a feature such as USB, clipboard, etc., and the feature can subsequently be redirected to the first desktop by exchanging corresponding data over the connection. A request can be received to switch the feature redirection to the second desktop. In response to the request, the client can establish a connection for redirecting the feature with an agent in the second desktop and the feature can be subsequently redirected to the second desktop by exchanging corresponding data over the new connection. As a result, feature redirection can be switched between desktops dynamically without terminating either virtual desktop session.

Claims (53)

1. A method for dynamically switching feature redirection between desktops under nested mode in virtual desktop environments, comprising:

establishing, over a network connection, a first virtual desktop session between a first virtual desktop client operating on a client computing device and a first virtual desktop agent operating in a first virtual desktop on a host server;

establishing a first connection for exchanging data between a first feature module running in the first virtual desktop client and a second feature module running in the first virtual desktop agent, wherein the first feature module and the second feature module are configured to exchange data over the first connection to redirect a corresponding feature to the first virtual desktop;

establishing a second virtual desktop session between a second virtual desktop client operating in the first virtual desktop and a second virtual desktop agent operating in a second virtual desktop;

receiving a first request to redirect a feature to the second virtual desktop;

in response to the first request, without disconnecting the first virtual desktop session or the second virtual desktop session, establishing a second connection for exchanging data between the first feature module running in the first virtual desktop client and a third feature module running in the second virtual desktop agent, wherein the first feature module and the third feature module are configured to exchange data over the second connection to redirect the feature to the second virtual desktop;

receiving a second request to redirect the feature to the first virtual desktop;

in response to the second request, without disconnecting the first virtual desktop session or the second virtual desktop session, re-establishing the first connection for exchanging data between the first feature module running in the first virtual desktop client and the second feature module running in the first virtual desktop agent; and

redirecting the feature to the first virtual desktop via the first connection.

2. The method of claim 1 , further comprising terminating the first connection in response to the first request.

3. The method of claim 1 , wherein the first request is produced in response to a user input indicating that the feature is to be redirected to the second virtual desktop.

4. The method of claim 1 , further comprising, in response to detecting that the first virtual desktop and the second virtual desktop are in nested mode:

placing a filter in the first virtual desktop agent for controlling the connection and disconnection of the second feature module with the first feature module; and

placing a filter in the second virtual desktop agent for controlling the connection and disconnection of the third feature module with the first feature module.

5. The method of claim 1 , wherein data is exchanged over the second connection by exchanging the data between the first virtual desktop client and the first virtual desktop agent over a first protocol virtual channel between the first virtual desktop client and the first virtual desktop agent, exchanging the data between the first virtual desktop agent and the second virtual desktop client in the first virtual desktop, and exchanging the data between the second virtual desktop client and the second virtual desktop agent over a second protocol virtual channel between the second virtual desktop client and the second virtual desktop agent.

6. The method of claim 1 , wherein the feature is one of a USB device, a clipboard, multimedia redirection (MMR), or a printer.

7. A computing device for dynamically switching feature redirection between desktops under nested mode in virtual desktop environments, 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 connection, a first virtual desktop session between a first virtual desktop client operating on a client computing device and a first virtual desktop agent operating in a first virtual desktop on a host server;

establishing a first connection for exchanging data between a first feature module running in the first virtual desktop client and a second feature module running in the first virtual desktop agent, wherein the first feature module and the second feature module are configured to exchange data over the first connection to redirect a corresponding feature to the first virtual desktop;

establishing a second virtual desktop session between a second virtual desktop client operating in the first virtual desktop and a second virtual desktop agent operating in a second virtual desktop;

receiving a first request to redirect a feature to the second virtual desktop;

in response to the first request, without disconnecting the first virtual desktop session or the second virtual desktop session, establishing a second connection for exchanging data between the first feature module running in the first virtual desktop client and a third feature module running in the second virtual desktop agent, wherein the first feature module and the third feature module are configured to exchange data over the second connection to redirect the feature to the second virtual desktop;

receiving a second request to redirect the feature to the first virtual desktop;

in response to the second request, without disconnecting the first virtual desktop session or the second virtual desktop session, re-establishing the first connection for exchanging data between the first feature module running in the first virtual desktop client and the second feature module running in the first virtual desktop agent; and

redirecting the feature to the first virtual desktop via the first connection.

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

terminating the first connection in response to the first request.

9. The computing device of claim 7 , wherein the first request is produced in response to a user input indicating that the feature is to be redirected to the second virtual desktop.

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

in response to detecting that the first virtual desktop and the second virtual desktop are in nested mode:

placing a filter in the first virtual desktop agent for controlling the connection and disconnection of the second feature module with the first feature module; and

placing a filter in the second virtual desktop agent for controlling the connection and disconnection of the third feature module with the first feature module.

11. The computing device of claim 7 , wherein data is exchanged over the second connection by exchanging the data between the first virtual desktop client and the first virtual desktop agent over a first protocol virtual channel between the first virtual desktop client and the first virtual desktop agent, exchanging the data between the first virtual desktop agent and the second virtual desktop client in the first virtual desktop, and exchanging the data between the second virtual desktop client and the second virtual desktop agent over a second protocol virtual channel between the second virtual desktop client and the second virtual desktop agent.

12. The computing device of claim 7 , wherein the feature is one of a USB device, a clipboard, multimedia redirection (MMR), or a printer.

13. A non-transitory computer readable storage medium for dynamically switching feature redirection between desktops under nested mode in virtual desktop environments 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 connection, a first virtual desktop session between a first virtual desktop client operating on a client computing device and a first virtual desktop agent operating in a first virtual desktop on a host server;

establishing a first connection for exchanging data between a first feature module running in the first virtual desktop client and a second feature module running in the first virtual desktop agent, wherein the first feature module and the second feature module are configured to exchange data over the first connection to redirect a corresponding feature to the first virtual desktop;

establishing a second virtual desktop session between a second virtual desktop client operating in the first virtual desktop and a second virtual desktop agent operating in a second virtual desktop;

receiving a first request to redirect a feature to the second virtual desktop; and

in response to the first request, without disconnecting the first virtual desktop session or the second virtual desktop session, establishing a second connection for exchanging data between the first feature module running in the first virtual desktop client and a third feature module running in the second virtual desktop agent, wherein the first feature module and the third feature module are configured to exchange data over the second connection to redirect the feature to the second virtual desktop;

receiving a second request to redirect the feature to the first virtual desktop;

in response to the second request, without disconnecting the first virtual desktop session or the second virtual desktop session, re-establishing the first connection for exchanging data between the first feature module running in the first virtual desktop client and the second feature module running in the first virtual desktop agent; and

redirecting the feature to the first virtual desktop via the first connection.

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

terminating the first connection in response to the first request.

15. The non-transitory computer readable storage medium of claim 13 , wherein the first request is produced in response to a user input indicating that the feature is to be redirected to the second virtual desktop.

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

in response to detecting that the first virtual desktop and the second virtual desktop are in nested mode:

placing a filter in the first virtual desktop agent for controlling the connection and disconnection of the second feature module with the first feature module; and

placing a filter in the second virtual desktop agent for controlling the connection and disconnection of the third feature module with the first feature module.

17. The non-transitory computer readable storage medium of claim 13 , wherein data is exchanged over the second connection by exchanging the data between the first virtual desktop client and the first virtual desktop agent over a first protocol virtual channel between the first virtual desktop client and the first virtual desktop agent, exchanging the data between the first virtual desktop agent and the second virtual desktop client in the first virtual desktop, and exchanging the data between the second virtual desktop client and the second virtual desktop agent over a second protocol virtual channel between the second virtual desktop client and the second virtual desktop agent.

Assignments (4)
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/0242 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 15, 2022
From: HUO, HUIYONG; TU, ZHONGZHENG; HUANG, WEIGANG; ZANG, MINGSHENG; YUETING ZHANG
To: VMWARE, INC.
Reel/Frame 059009/0232 →
Priority Claims (1)
WO PCT/CN2021/142402 · Dec 29, 2021 · international
Continuity (1)
Related Publication 20230205566A1 · Jun 29, 2023
References Cited (8)
US 7673056B1 · Inbaraj · 2010 [cited by examiner]
US 20090006537A1 · Palekar · 2009 [cited by examiner]
US 20120324365A1 · Momchilov · 2012 [cited by examiner]
US 20170003995A1 · Hu · 2017 [cited by examiner]
US 20170111455A1 · Raju · 2017 [cited by examiner]
US 20170318112A1 · Johnsimon · 2017 [cited by examiner]
US 20170339234A1 · Vajravel · 2017 [cited by examiner]
US 20210014334A1 · Sun · 2021 [cited by examiner]