Execution context isolation in a driver execution environment (DXE) with marshaling arguments to a common location in response to an LPC
AssigneeKinglite Holdings Inc.
InventorStephen E. Jones
Life of this patent
Estimating the term…
Abstract
Methods, systems, apparatuses and program products for providing for communications within a computing environment that provides for execution isolation, especially a DXE (Driver Execution Environment) phase of a PC (personal computer) startup process. Provision is made for blocking of server threads awaiting service requests and blocking client thread awaiting server responses, together with marshalling formal parameter descriptions and service request/response arguments across disparate execution contexts that disallow simple data redirection between them.
Claims17
A method for executing instructions in a device comprising a computer, the method comprising:
- registering a DXE (Driver Execution Environment) driver port function and associating a set of information, including a set of corresponding formal arguments, with a request in a first execution context for a service, the set of information comprising a reference to the service and wherein the service requires honoring at least partially in a second execution context;
- creating a first copy of the set of information in a common area;
- making a first call to a kernel program, responsive to the first call creating a second execution context;
- performing a context switch from the first execution context to the second execution context;
- calling the DXE (Driver Execution Environment) driver port function with the set of information in the second execution context;
- making a LPC (local procedure call) to the kernel program;
- marshaling the first copy of the set of information into an area associated with an execution sequence to honor the service, comprising, copying actual arguments held on stack to an area off stack that is addressable from both first and second execution contexts, wherein the set of actual arguments are non-addressable in the first execution context, and wherein the marshaling is responsive to the LPC.
A method for executing instructions in a device comprising a computer, the method comprising:
- registering a DXE (Driver Execution Environment) driver port function and a set of corresponding formal arguments in a first execution context;
- making a first call to a kernel program, responsive to the first call creating a second execution context;
- calling the DXE (Driver Execution Environment) driver port function with a set of actual arguments in the second execution context;
- making a LPC (local procedure call) to the kernel program;
- and
- marshaling a copy of the set of actual arguments to the first execution context, comprising, copying actual arguments held on stack to an area off stack that is addressable from both first and second execution contexts, wherein the set of actual arguments are non-addressable in the first execution context, and wherein the marshaling is responsive to the LPC.
A computer program product comprising:
- at least one non-transitory computer-readable medium having instructions encoded therein, the instructions when executed by a device comprising a computer cause the device to operate to implement the method of:
- registering a DXE (Driver Execution Environment) driver port function and associating a set of information, including a set of corresponding formal arguments, with a request in a first execution context for a service, the set of information comprising a reference to the service and wherein the service requires honoring at least partially in a second execution context;
- creating a first copy of the set of information in a common area;
- making a first call to a kernel program, responsive to the first call creating a second execution context;
- performing a context switch from the first execution context to the second execution context;
- calling the DXE (Driver Execution Environment) driver port function with the set of information in the second execution context;
- making a LPC (local procedure call) to the kernel program;
- marshaling the first copy of the set of information into an area associated with an execution sequence to honor the service, comprising, copying actual arguments held on stack to an area off stack that is addressable from both first and second execution contexts, wherein the set of actual arguments are non-addressable in the first execution context, and wherein the marshaling is responsive to the LPC.
A computer program product comprising:
- at least one non-transitory computer-readable medium having instructions encoded therein, the instructions when executed by a device comprising a computer cause the device to operate to implement the method of:
- registering a DXE (Driver Execution Environment) driver port function and a set of corresponding formal arguments in a first execution context;
- making a first call to a kernel program, responsive to the first call creating a second execution context;
- calling the DXE (Driver Execution Environment) driver port function with a set of actual arguments in the second execution context;
- making a LPC (local procedure call) to the kernel program;
- and
- marshaling a copy of the set of actual arguments to the first execution context, comprising, copying actual arguments held on stack to an area off stack that is addressable from both first and second execution contexts, wherein the set of actual arguments are non-addressable in the first execution context, and wherein the marshaling is responsive to the LPC.
An electronic device comprising:
- a controller;
- and
- a memory having instructions encoded therein, the instructions when executed by the controller cause said electronic device to operate for running an sequence of instructions by steps that implement the method of:
- registering a DXE (Driver Execution Environment) driver port function and associating a set of information, including a set of corresponding formal arguments, with a request in a first execution context for a service, the set of information comprising a reference to the service and wherein the service requires honoring at least partially in a second execution context;
- creating a first copy of the set of information in a common area;
- making a first call to a kernel program, responsive to the first call creating a second execution context;
- performing a context switch from the first execution context to the second execution context;
- calling the DXE (Driver Execution Environment) driver port function with the set of information in the second execution context;
- making a LPC (local procedure call) to the kernel program;
- marshaling the first copy of the set of information into an area associated with an execution sequence to honor the service, comprising, copying actual arguments held on stack to an area off stack that is addressable from both first and second execution contexts, wherein the set of actual arguments are non-addressable in the first execution context, and wherein the marshaling is responsive to the LPC.
Dependencies are inferred from the claim text.