← Back to Patent Explorer
US5784615A Expired / Lapsed US ⏱️ 0.0 years remaining

Computer system messaging architecture

Assignee: Microsoft Technology Licensing LLC
•
Filing: 1994-12-13
•
Granted: 1998-07-21
•
Expires: 2014-12-13
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract An operating system for a computer system having a protection scheme with a plurality of privilege rings provides services for message broadcasting from applications at less privileged rings to virtual drivers at a most privileged ring, and from the virtual drivers to applications. The virtual drivers can perform user mode operations including message broadcasting as an application by synchronizing to a thread of a user mode message server at application time, and setting the thread's user mode context to perform the operations.

Inventors

  • 👤 Ralph Allen Lipe
  • 👤 Raymond J. Chen
  • 👤 Michael A. Schmidt
  • 👤 Sankar Ramasubramanian

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-09 01:41
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/46; G06F9/54; G06F9/542; G06F9/44; G06F9/448; G06F9/4482; G06F9/4484; G06F9/468

Claims Analysis

Total Claims: 23
Claim 1
Independent Claim 184 words
A computer system, comprising: a microprocessor providing execution of program code at a plurality of privilege rings, the privilege rings including a most privileged ring and a user mode ring; a message server executing on the microprocessor at the user mode ring; at least one virtual driver executing on the microprocessor at the most privileged ring; and an operating system component executing on the microprocessor at the most privileged ring and having a plurality of application programming interfaces callable by virtual drivers including an interface for requesting application time processing of an operation, the operating system component being operative responsive to a call to the interface to post an application time request message to the message server, the operating system component having a function adapted to modify the message server's user mode execution state to perform the operation; the message server being adapted to respond to the application time request message by calling the function in the operating system component adapted to modify the message server's user mode execution state, whereby the operation is performed for the virtual driver by a user mode component.
Claim 2
Dependent Claim 184 words
A computer system, comprising: a microprocessor providing execution of program code at a plurality of privilege rings, the privilege rings including a most privileged ring and a user mode ring; a message server executing on the microprocessor at the user mode ring; at least one virtual driver executing on the microprocessor at the most privileged ring; and an operating system component executing on the microprocessor at the most privileged ring and having a plurality of application programming interfaces callable by virtual drivers including an interface for requesting application time processing of an operation, the operating system component being operative responsive to a call to the interface to post an application time request message to the message server, the operating system component having a function adapted to modify the message server's user mode execution state to perform the operation; the message server being adapted to respond to the application time request message by calling the function in the operating system component adapted to modify the message server's user mode execution state, whereby the operation is performed for the virtual driver by a user mode component.
Claim 3
Dependent Claim 14 words
The computer system of claim 1 wherein the operation is a message broadcasting operation.
Claim 4
Independent Claim 129 words
A method for a ring 0 component to invoke a procedure provided in a user mode component, comprising: posting by the ring 0 component of a message to the user mode component requesting application time processing; retrieving the posted message by a process thread executing in the user mode component; calling by the process thread from the user mode component into the ring 0 component; setting a user mode execution state of the process thread by the ring 0 component to perform the procedure and a return call to the ring 0 component; performing the procedure by the user mode component; calling by the user mode component of the ring 0 component; and restoring by the ring 0 component of the user mode execution state of the process thread.
Claim 5
Independent Claim 129 words
A method for a ring 0 component to invoke a procedure provided in a user mode component, comprising: posting by the ring 0 component of a message to the user mode component requesting application time processing; retrieving the posted message by a process thread executing in the user mode component; calling by the process thread from the user mode component into the ring 0 component; setting a user mode execution state of the process thread by the ring 0 component to perform the procedure and a return call to the ring 0 component; performing the procedure by the user mode component; calling by the user mode component of the ring 0 component; and restoring by the ring 0 component of the user mode execution state of the process thread.
Claim 6
Dependent Claim 124 words
The method of claim 3 for further allowing a virtual driver to invoke the procedure provided in the user mode component, comprising: providing a call back function in the virtual driver; providing an interface in the ring 0 component for the virtual driver to request application time processing and register the call back function; calling the interface by the virtual driver; when the process thread calls into the ring 0 component, calling the call back function of the virtual driver by the ring 0 component; and calling a function of the ring 0 component by the virtual driver to cause the ring 0 component to set the user mode execution state of the process thread to perform the procedure of the user mode component.
Claim 7
Dependent Claim 14 words
A computer-readable medium having computer-executable instructions for performing the steps recited in claim 4.
Claim 8
Dependent Claim 14 words
A computer-readable medium having computer-executable instructions for performing the steps recited in claim 3.
Claim 9
Dependent Claim 218 words
A computer system, comprising: a microprocessor providing execution of program code at a plurality of privilege rings, the privilege rings including a privileged mode ring and a user mode ring; a user mode component allocated at the user mode ring of the microprocessor; a user mode process thread executing on the microprocessor at the user mode ring; a virtual driver allocated at the privileged mode ring of the microprocessor and having an application time call back function; a privileged mode component allocated at the privileged mode ring of the microprocessor and having an application time processing request interface for calling by the virtual driver to request application time processing and register the virtual driver's application time call back function for call back; and wherein the privileged mode component posts a message to the user mode component responsive to the virtual driver's interface call to cause the user mode process thread to call into the privileged mode component, the user mode process thread when in the privileged mode component calls the application time call back function of the virtual driver, and the application time call back function causes a user mode execution state of the process thread to be set so as to perform a desired user mode procedure when the process thread returns from the privileged mode component.
Claim 10
Dependent Claim 218 words
A computer system, comprising: a microprocessor providing execution of program code at a plurality of privilege rings, the privilege rings including a privileged mode ring and a user mode ring; a user mode component allocated at the user mode ring of the microprocessor; a user mode process thread executing on the microprocessor at the user mode ring; a virtual driver allocated at the privileged mode ring of the microprocessor and having an application time call back function; a privileged mode component allocated at the privileged mode ring of the microprocessor and having an application time processing request interface for calling by the virtual driver to request application time processing and register the virtual driver's application time call back function for call back; and wherein the privileged mode component posts a message to the user mode component responsive to the virtual driver's interface call to cause the user mode process thread to call into the privileged mode component, the user mode process thread when in the privileged mode component calls the application time call back function of the virtual driver, and the application time call back function causes a user mode execution state of the process thread to be set so as to perform a desired user mode procedure when the process thread returns from the privileged mode component.
Claim 11
Dependent Claim 67 words
The computer system of claim 7 wherein the privileged mode component also has a broadcast system message interface for calling by the virtual driver to cause the privileged mode component to set the user mode execution state of the process thread to perform a call to a user mode interface for requesting broadcast of a system message when the process thread returns from the privileged mode component.
Claim 12
Independent Claim 130 words
A method of broadcasting messages to recipient components at a plurality of privilege rings of a protected mode processor, comprising: issuing, by an application at a user mode privilege ring, a broadcast system message call having a plurality of call parameters comprising a message identifier indicating a desired message out of a set of predefined messages, and a recipient list indicating desired recipient components of the message out of a plurality of classes of components comprising at least applications at the user mode privilege ring and virtual drivers at a more privileged ring; receiving, by a message server, the broadcast system message call; and sending, by the message server responsive to the broadcast system message call, the indicated message to recipient components of the classes indicated by the recipient list.
Claim 13
Independent Claim 130 words
A method of broadcasting messages to recipient components at a plurality of privilege rings of a protected mode processor, comprising: issuing, by an application at a user mode privilege ring, a broadcast system message call having a plurality of call parameters comprising a message identifier indicating a desired message out of a set of predefined messages, and a recipient list indicating desired recipient components of the message out of a plurality of classes of components comprising at least applications at the user mode privilege ring and virtual drivers at a more privileged ring; receiving, by a message server, the broadcast system message call; and sending, by the message server responsive to the broadcast system message call, the indicated message to recipient components of the classes indicated by the recipient list.
Claim 14
Dependent Claim 25 words
The method of claim 9 wherein the classes of components from which the recipient list parameter indicates the desired recipient components includes user mode drivers.
Claim 15
Dependent Claim 14 words
A computer-readable medium having computer-executable instructions for performing the steps recited in claim 10.
Claim 16
Dependent Claim 71 words
The method of claim 9 wherein the call parameters further comprise a parameter for indicating the broadcast message is a query, the method further comprising: receiving, by the message server, return values from the recipient components indicative of each recipient component's acceptance or non-acceptance of the indicated message; and returning, by the message server, a return value to the application indicative of whether the recipient program components accepted the indicated message.
Claim 17
Dependent Claim 39 words
The method of claim 12 further comprising: ceasing, by the message server, to send the indicated message to the indicated recipient components on receiving a return value from any recipient program component indicative of non-acceptance of the indicated message.
Claim 18
Dependent Claim 14 words
A computer-readable medium having computer-executable instructions for performing the steps recited in claim 12.
Claim 19
Dependent Claim 14 words
A computer-readable medium having computer-executable instructions for performing the steps recited in claim 13.
Claim 20
Dependent Claim 14 words
A computer-readable medium having computer-executable instructions for performing the steps recited in claim 9.
Claim 21
Dependent Claim 343 words
In a computer system having application programs executing at a user mode privilege ring and virtual drivers executing at a more privileged ring, a method for a virtual driver to broadcast a system message to a group of recipient components including application programs, the method comprising: issuing, by the virtual driver, an application time processing request call having a parameter indicative of an application time call back function of the virtual driver; receiving, by a privileged ring operating system component, the application time processing request call; posting, by the privileged ring operating system component in response to the application time processing request call, an application time request message to a message server process at the user mode ring; retrieving, by a process thread of the message server process, the application time request message; calling, by the process thread in response to the application time request message, into the privileged operating system component; issuing, by the process thread in the privileged operating system component, a call to the application time call back function of the virtual driver; issuing, by the process thread in the application time call back function of the virtual driver, a privileged mode broadcast system message call having a plurality of call parameters comprising a message identifier and a recipients list parameter; receiving, by the privileged operating system component, the privileged mode broadcast system message call; setting, by the privileged operating system component in response to the privileged mode broadcast system message call, a user mode execution state of the process thread to cause the process thread to issue a call to a broadcast system message interface of the message server according to the call parameters of the privileged mode broadcast system message call upon return to the user mode of execution; returning, by the process thread, to the user mode of execution from the calls into the privileged operating system component and virtual driver; whereby the process thread calls the broadcast system message interface of the message server in the user mode privilege ring on behalf of the virtual driver.
Claim 22
Dependent Claim 343 words
In a computer system having application programs executing at a user mode privilege ring and virtual drivers executing at a more privileged ring, a method for a virtual driver to broadcast a system message to a group of recipient components including application programs, the method comprising: issuing, by the virtual driver, an application time processing request call having a parameter indicative of an application time call back function of the virtual driver; receiving, by a privileged ring operating system component, the application time processing request call; posting, by the privileged ring operating system component in response to the application time processing request call, an application time request message to a message server process at the user mode ring; retrieving, by a process thread of the message server process, the application time request message; calling, by the process thread in response to the application time request message, into the privileged operating system component; issuing, by the process thread in the privileged operating system component, a call to the application time call back function of the virtual driver; issuing, by the process thread in the application time call back function of the virtual driver, a privileged mode broadcast system message call having a plurality of call parameters comprising a message identifier and a recipients list parameter; receiving, by the privileged operating system component, the privileged mode broadcast system message call; setting, by the privileged operating system component in response to the privileged mode broadcast system message call, a user mode execution state of the process thread to cause the process thread to issue a call to a broadcast system message interface of the message server according to the call parameters of the privileged mode broadcast system message call upon return to the user mode of execution; returning, by the process thread, to the user mode of execution from the calls into the privileged operating system component and virtual driver; whereby the process thread calls the broadcast system message interface of the message server in the user mode privilege ring on behalf of the virtual driver.
Claim 23
Dependent Claim 14 words
A computer-readable medium having computer-executable instructions for performing the steps recited in claim 17.

References Cited (Backward Citations)

US4177510A Cited
US3916385A Cited
US5522075A Cited
US5305461A Cited
US5414848A Cited
US5530858A Cited
US5537597A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2001-07-20 2002-01-19 2002-07-21 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2005-07-20 2006-01-19 2006-07-21 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2009-07-20 2010-01-19 2010-07-21 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag