IP Library Granted Patent US 12681745
Granted Patent B2
US 12681745 · App. 18/099,899 · Granted Jul 14, 2026

Multi-user virtual machine platform

Inventors: Chunyuan Ge (Shanghai, CN); Kunfu Zhong (Suzhou, CN); Liu He (Suzhou, CN); Bhavya Chopra (Issaquah, WA); Ge Shen (Suzhou, CN); Jie Liu (Bellevue, WA)
Assignee: Microsoft Technology Licensing, LLC
G06F9/45558G06F2009/45583G06F2009/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 12681745
App. No.
18/099,899
Granted
Jul 14, 2026
Kind
B2
Abstract

A multi-user virtual machine (VM) system is disclosed herein. Upon receiving a user login, first persistent storage and a first network interface card (NIC) are attached to a VM, where the VM operates as a personal computing device of a first user. Upon receiving a logout request for the user, the first persistent storage and the first NIC are detached from the VM. Thereafter, a second login is received, and second persistent storage and a second NIC are attached to the VM, where the VM operates as a personal computing device of a second user.

Claims (76)

1 . A computing system comprising:

a processor; and

memory storing instructions that, when executed by the processor, cause the processor to perform acts comprising:

receiving a request to log in to a virtual machine (VM) from a client computing device that is being operated by a user, wherein the VM is a shared VM among a plurality of users that access the shared VM during non-overlapping sessions;

in response to receiving the request:

obtaining a user profile, where the user profile includes an identifier for persistent storage that is unique to the user profile;

dynamically attaching the persistent storage to the VM based upon the identifier for the persistent storage included in the user profile,

wherein different persistent storages are attached for different users in successive login sessions, and

wherein a configuration of the VM is based upon content of the persistent storage; and

streaming graphical data from the VM to the client computing device.

2 . The computing system of claim 1 , wherein the user profile further includes an identifier for a network interface card (NIC) that is unique to the user profile, the acts further comprising attaching the NIC to the VM based upon the identifier for the NIC being included in the user profile, wherein the graphical data is streamed to the client computing device by way of the NIC.

3 . The computing system of claim 1 , wherein the user profile further includes an identifier for the VM, the acts further comprising:

prior to attaching the persistent storage to the VM, determining that the VM is not in a communication session with another client computing device, wherein the persistent storage is attached to the VM in response to determining that the VM is not in the communication session with another client computing device.

4 . The computing system of claim 1 , wherein the persistent storage is a portion of a solid state drive.

5 . The computing system of claim 1 , wherein the user profile further includes an identifier of an organization that employs the user, the acts further comprising identifying the VM based upon the identifier for the organization included in the user profile.

6 . The computing system of claim 1 , the acts further comprising:

subsequent to streaming the graphical data to the client computing device, receiving a logout request from the client computing device; and

in response to receiving the logout request, detaching the persistent storage from the VM, wherein the VM is persisted at the computing system subsequent to the persistent storage being detached from the VM.

7 . The computing system of claim 6 , the acts further comprising:

subsequent to the persistent storage being detached from the VM, receiving a second request to login to the VM from the client computing device, where the second request identifies a second user;

obtaining a second user profile based upon the second request to login to the VM, where the second user profile includes a second identifier for second persistent storage that is unique to the second user profile;

attaching the second persistent storage to the VM based upon the second identifier for the second persistent storage included in the second user profile; and

streaming second graphical data to the client computing device.

8 . The computing system of claim 6 , the acts further comprising:

subsequent to the persistent storage being detached from the VM, receiving a second request to login to the VM from a second client computing device, where the second request identifies a second user, and further where the VM is to act as a personal computing device of the second user;

obtaining a second user profile based upon the second request to login to the VM, where the second user profile includes a second identifier for second persistent computer readable storage that is unique to the second user profile;

attaching the second persistent storage to the VM based upon the second identifier for the second persistent storage included in the second user profile; and

streaming second graphical data to the second client computing device, where the second graphical data is based upon content included in the second persistent storage.

9 . The computing system of claim 1 , the acts further comprising:

while the persistent storage is attached to the VM, receiving a second request to login to the VM from a second client computing device, where the second request identifies a second user;

in response to receiving the second request to login to the VM, determining that the VM is in an active session with the client computing device; and

denying the second request to login to the VM upon determining that the VM is in the active session with the client computing device.

10 . A method performed at a computing system that includes a multi-user virtual machine (VM) platform, the method comprising:

receiving a request to login to a VM from a client computing device that is being operated by a user, wherein the VM is a shared VM among a plurality of users that access the shared VM during non-overlapping sessions;

obtaining a user profile based upon the request to login to the VM, where the user profile includes an identifier for a network interface card (NIC) that is unique to the user profile;

dynamically attaching the NIC to the VM based upon the identifier for the NIC being included in the user profile; and

streaming graphical data to the client computing device by way of the NIC.

11 . The method of claim 10 , wherein the user profile further includes an identifier for persistent computer-readable storage that is unique to the user profile, the method further comprising attaching the persistent computer-readable storage to the VM based upon the identifier for the persistent computer-readable storage being included in the user profile, wherein the graphical data streamed to the client computing device is based upon data in the persistent computer-readable storage.

12 . The method of claim 10 , wherein the user profile further includes an identifier for the VM, the method further comprising:

prior to attaching the NIC to the VM, determining that the VM is not in a communication session with another client computing device, wherein the NIC is attached to the VM in response to determining that the VM is not in the communication session with another client computing device.

13 . The method of claim 10 , wherein the NIC is a virtual NIC.

14 . The method of claim 10 , wherein the user profile further includes an identifier of an organization that employs the user, the method further comprising identifying the VM based upon the identifier for the organization included in the user profile.

15 . The method of claim 10 , further comprising:

subsequent to streaming the graphical data to the client computing device, receiving a logout request from the client computing device; and

in response to receiving the logout request, detaching the NIC from the VM, wherein the VM is persisted at the computing system subsequent to the NIC being detached from the VM.

16 . The method of claim 15 , further comprising:

subsequent to the NIC being detached from the VM, receiving a second request to login to the VM from the client computing device, where the second request identifies a second user;

obtaining a second user profile based upon the second request to login to the VM, where the second user profile includes a second identifier for a second NIC that is unique to the second user profile;

attaching the second NIC to the VM based upon the second identifier for the NIC included in the second user profile; and

streaming second graphical data to the client computing device by way of the second NIC.

17 . The method of claim 15 , further comprising:

subsequent to the NIC being detached from the VM, receiving a second request to login to the VM from a second client computing device, where the second request identifies a second user;

obtaining a second user profile based upon the second request to login to the VM, where the second user profile includes a second identifier for a second NIC that is unique to the second user profile;

attaching the second NIC to the VM based upon the second identifier for the second NIC included in the second user profile; and

streaming second graphical data to the second client computing device by way of the second NIC.

18 . A computing system that executes a virtual machine (VM), where the computing system comprises:

a processor; and

memory storing instructions that, when executed by the processor, cause the processor to perform acts comprising:

receiving a request to login to the VM from a client computing device that is being operated by a user, wherein the VM is a shared VM among a plurality of users that access the shared VM during non-overlapping sessions;

dynamically obtaining a user profile based upon the request to login to the VM, where the user profile includes:

an identifier for persistent storage that is unique to the user profile; and

an identifier for a network interface card (NIC) that is unique to the user profile;

dynamically attaching the persistent storage to the VM based upon the identifier for the persistent storage being included in the user profile;

dynamically attaching the NIC to the VM based upon the identifier for the NIC being included in the user profile; and

streaming graphical data to the client computing device, where the graphical data is streamed to the client computing device by way of the NIC.

19 . The computing system of claim 18 , the acts further comprising:

subsequent to streaming the graphical data to the client computing device, receiving a logout request from the client computing device; and

in response to receiving the logout request, detaching the persistent storage and the NIC from the VM, wherein the VM is persisted at the computing system subsequent to the persistent storage and the NIC being detached from the VM.

20 . The computing system of claim 19 , the acts further comprising:

subsequent to persistent storage and the NIC being detached from the VM, receiving a second request to login to the VM from the client computing device, where the second request identifies a second user;

obtaining a second user profile based upon the second request to login to the VM, where the second user profile includes:

an identifier for second persistent storage that is unique to the second user profile; and

an identifier for a second NIC that is unique to the second user profile;

attaching the second persistent storage to the VM based upon the identifier for the second persistent storage included in the second user profile;

attaching the second NIC to the VM based upon the identifier for the second NIC included in the second user profile; and

streaming second graphical data to the client computing device by way of the second NIC.