This API is defined in the header file sysroot-*-kos/include/coresrv/ipc/ipc_api.h
from the KasperskyOS SDK.
The API interrupts the Call()
and Recv()
system calls if one or more process threads are locked while waiting for these system calls to complete. For example, you may need to interrupt these system calls to correctly terminate a process so that threads waiting for the completion of these system calls can resume execution.
Information about API functions is provided in the table below.
Using the API
The API interrupts system calls in process threads that were locked after the CallEx()
or RecvEx()
function was called from the API syscalls.h if these functions were called while specifying the IPC synchronization object handle in the syncHandle
parameter. To create an IPC synchronization object, call the KnIpcCreateSyncObject()
function. (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.)
The KnIpcSetInterrupt()
function switches an IPC synchronization object to a state that allows interruption of the system calls in those process threads that have been locked after a CallEx()
or RecvEx()
function call specifying the handle of this IPC synchronization object in the syncHandle
parameter. A system call can be interrupted only during certain stages of its execution. A system call that is executed by the CallEx()
function can be interrupted only when the server has not yet received a Recv()
or RecvEx()
function call for the IPC channel whose client IPC handle was specified during the CallEx()
function call. A system call executed by the RecvEx()
function can be interrupted only while waiting for an IPC request from a client.
The KnIpcClearInterrupt()
function cancels the action of the KnIpcSetInterrupt()
function.
To delete an IPC synchronization object, close its handle by calling the KnHandleClose()
function that is declared in the header file sysroot-*-kos/include/coresrv/handle/handle_api.h
from the KasperskyOS SDK.
Information about API functions
ipc_api.h functions
Function |
Information about the function |
---|---|
|
Purpose Creates an IPC synchronization object. Parameters
Returned values If successful, the function returns |
|
Purpose Switches the defined IPC synchronization object to a state in which the Parameters
Returned values If successful, the function returns |
|
Purpose Switches the defined IPC synchronization object to a state in which the Parameters
Returned values If successful, the function returns |