IP Library Granted Patent US 8,463,980
Granted Patent B2
US 8,463,980 · App. 12/894,896 · Granted Jun 11, 2013

Shared memory between child and parent partitions

Inventors: Bradley Stephen Post (San Francisco, CA); Ed Cox (Morgan Hill, CA)
Assignee: Microsoft Corporation
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 8,463,980
App. No.
12/894,896
Granted
Jun 11, 2013
Kind
B2
Abstract

A mechanism for the creation of a shared memory aperture between modes in a parent and child partition is described. The shared memory aperture can be created between any memory mode between the guest and any host. For example, a shared memory aperture can be created between the kernel mode on the child partition and the user mode on the parent partition.

Claims (34)

1. A method of transferring data between virtual machine partitions, the method comprising:

sending by a first virtual machine partition to a second virtual machine partition a request for allocation of memory, wherein the allocation indicates a maximum buffer size for transferred data;

mapping the requested memory allocation;

allocating the requesting memory in a shared memory aperture between modes in the first and second virtual machine partitions; and

transferring data between the first and second virtual machine partitions using the shared memory aperture.

2. The method of claim 1 , wherein the first virtual machine partition is a child partition and the second virtual machine partition is a parent partition.

3. The method of claim 2 , wherein the modes comprise either a kernel mode or a user mode.

4. The method of claim 3 , further comprising opening a virtualization service client (VSC) device object and sending a control message to a VSC driver requesting that the user mode or kernel mode buffer allocated in the child partition be shared with a parent partition buffer.

5. The method of claim 4 , wherein the VSC driver creates a memory descriptor list (MDL) for the buffer allocated in the child partition's guest operating system (OS) memory space.

6. The method of claim 5 , wherein the VSC driver converts the MDL to a guest physical address descriptor list (GPADL) that describes system pages that the buffer has been allocated by a hypervisor.

7. The method of claim 2 , wherein the data comprises graphics data representative of a client screen in a remote presentation session.

8. The method of claim 7 , the graphics data is rendered by a virtualized graphics accelerator executing in the parent partition.

9. The method of claim 1 , wherein the maximum buffer size is negotiated between the first and second partitions.

10. The method of claim 1 , wherein the shared memory aperture is created using a software library.

11. The method of claim 1 , further comprising closing the shared memory aperture by unlocking, unmapping, and releasing the shared memory aperture.

12. A system for transferring data between virtual machine partitions, comprising:

a computing device comprising at least one processor;

a memory communicatively coupled to said processor when said system is operational; said memory having stored therein computer instructions that upon execution by the at least one processor cause:

sending by a first virtual machine partition to a second virtual machine partition a request for allocation of memory, wherein the allocation indicates a maximum buffer size for transferred data;

mapping the requested memory allocation;

allocating the requested memory in a shared memory aperture between modes in the first and second virtual machine partitions; and

transferring data between the first and second virtual machine partitions using the shared memory aperture.

13. The system of claim 12 , wherein the first virtual machine partition is a child partition and the second virtual machine partition is a parent partition.

14. The system of claim 13 , wherein the modes comprise either a kernel mode or a user mode.

15. The system of claim 12 , wherein the maximum buffer size is negotiated between the first and second partitions.

16. The system of claim 12 , wherein the shared memory aperture is created using a software link library.

17. A computer readable storage medium storing thereon computer executable instructions for transferring data between virtual machine partitions, said instructions for:

sending by a child virtual machine partition to a parent virtual machine partition a request for allocation of memory, wherein the allocation indicates a maximum buffer size for transferred data;

mapping the requested memory allocation;

allocating the requesting memory in a shared memory aperture between modes in the child and parent virtual machine partitions; and

transferring data between the child and parent virtual machine partitions using the shared memory aperture.

18. The computer readable storage medium of claim 17 , wherein the modes comprise either a kernel mode or a user mode.

19. The computer readable storage medium of claim 17 , wherein the maximum buffer size is negotiated between the child and parent partitions.

20. The computer readable storage medium of claim 17 , wherein the data comprises graphics data representative of a client screen in a remote presentation session and the graphics data is rendered by a virtualized graphics accelerator executing in the parent partition.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034544/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 25, 2011
From: POST, BRADLEY STEPHEN
To: MICROSOFT CORPORATION
Reel/Frame 025691/0427 →
Continuity (1)
Related Publication 20120084517A1 · Apr 5, 2012