US 7,546,607 B2
Native code exposing virtual machine managed object
Seth M. Demsey, Kirkland, Wash. (US); Tuan Huynh, Seattle, Wash. (US); Christopher W. Lorton, Bothell, Wash. (US); Ramasamy Krishnaswamy, Redmond, Wash. (US); Armin Sadeghi, Bellevue, Wash. (US); and Bruce E. Johnson, Bellevue, Wash. (US)
Assigned to Microsoft Corporation, Redmond, Wash. (US)
Filed on Nov. 19, 2002, as Appl. No. 10/299,202.
Prior Publication US 2004/0098731 A1, May 20, 2004
Int. Cl. G06F 9/54 (2006.01); G06F 9/46 (2006.01)
U.S. Cl. 719—318  [718/1] 51 Claims
OG exemplary drawing
 
7. A method of facilitating communication across a boundary between a managed code portion and a native code portion in a computer environment, the managed code portion being operated by a virtual machine and having a base class library operable in the managed code portion, the native code portion comprising an operating system having a subsystem library operable in the native code portion, the method comprising:
receiving, in an abstraction layer operating in a native code, a notification from the base class library before the notification being transitioned across the boundary to the subsystem library or from the subsystem library before the notification being transitioned across the boundary to the base class library, wherein:
the managed code portion and the native code portion are parts of the environment executed on a single computing device;
the managed code portion is configured to target one or more platforms not supported in the native code portion;
the binary class library comprises a plurality of User Interface (UI) library within the managed code portion;
the subsystem library in the operating system comprises a native windowing system responsible for creating, managing, and destroying a User Interface (UI) component in the native code; and
the binary class library in the managed code portion and the subsystem library in the native code portion are configured to send and receive the notification across the boundary;
assessing, at the abstraction layer, the notification as to whether the notification is to be immediately transitioned across the boundary between the managed code portion and the native code portion based at least in part on a status of the virtual machine and status of system resources; and
performing, at the abstraction layer, an action requiring less processing workload from the single computing device than the processing workload required to immediately transition the notification across the boundary, thereby alleviating strain of allocating one or more User Interface (UI) resources on the single computing device in response to an immediate transition of the notification, the action comprising combining the notification with one or more notifications previously received by the abstraction layer into a group before transitioning the group comprising the notification and the one or more notifications previously received across the boundary.