Patent ID: 8332866

Claim:
A method for accomplishing inter-process communication of data in a memory protection architecture having a kernel, comprising: executing, in a kernel protection domain level process, a system call issued by a user protection domain level client process having a first memory address space not accessible to other user protection domain level processes, the system call including a first pointer referencing a memory location of a client input buffer in the first memory address space containing the input data and a second pointer referencing a memory location of a client output buffer in the first memory address space into which output data is to be copied, the system call requesting invocation of an object in an address space not accessible to the user protection domain level client process; determining whether the object resides in the kernel protection domain level or in the user protection domain level; identifying in the kernel protection domain level process a user protection domain level server process that contains a reference to a location of the object to be invoked, the identified user protection domain level server process having a second memory address space not accessible to other user protection domain level processes, the reference to the location being stored in the second memory address space; copying the first pointer into a server input buffer in the second memory address space; executing, in the kernel protection domain level process, an awake call to waken a server thread within the user protection domain level server process that invokes the object and outputs a result of the invocation in a server output buffer in the second memory address space as output data; and copying a third pointer referencing a memory location of the server output buffer containing output data directly from the server output buffer into the memory location of the client output buffer referenced by the second pointer.