This endpoint is intended for interrupting the Call() and Recv() locking system calls. (For example, this may be required to correctly terminate a process.)
Information about methods of the endpoint is provided in the table below.
Methods of the ipc.IPC endpoint (kl.core.IPC interface)
Method
Method purpose and parameters
Potential danger of the method
CreateSyncObject
Purpose
Creates an IPC synchronization object.
An IPC synchronization object is used to interrupt Call() and Recv() locking system calls in threads of the calling process. A Call() can be interrupted only when it is awaiting a Recv() call by the server. Recv() can be interrupted only when it is waiting to receive an IPC request from a client.
The handle of an IPC synchronization object cannot be transferred to another process because the necessary flag for this operation is not set in the permissions mask of this handle.
Parameters
[out] syncHandle – value whose binary representation consists of multiple fields, including a handle field and a handle permissions mask field. The handle identifies the IPC synchronization object.
[out] rc – return code.
Allows the kernel memory to be used up by creating a multitude of objects within it.
SetInterrupt
Purpose
Switches the defined IPC synchronization object to a state in which the Call() and Recv() system calls are interrupted.
Parameters
[in] syncHandle – value whose binary representation consists of multiple fields, including a handle field and a handle permissions mask field. The handle identifies the IPC synchronization object.
[out] rc – return code.
N/A
ClearInterrupt
Purpose
Switches the defined IPC synchronization object to a state in which the Call() and Recv() system calls are not interrupted.
Parameters
[in] syncHandle – value whose binary representation consists of multiple fields, including a handle field and a handle permissions mask field. The handle identifies the IPC synchronization object.