API определен в заголовочном файле sysroot-*-kos/include/coresrv/ipc/ipc_api.h
из состава KasperskyOS SDK.
API позволяет прерывать системные вызовы Call()
и Recv()
, в ожидании завершения которых заблокирован один или несколько потоков процесса. Прерывать системные вызовы требуется, например, чтобы корректно завершить процесс, поскольку потоки, ожидающие завершения этих системных вызовов, возобновляют исполнение.
Сведения о функциях API приведены в таблице ниже.
Использование API
API позволяет прерывать системные вызовы в потоках процесса, которые заблокированы после вызова функции CallEx()
или RecvEx()
из API syscalls.h, если эти функции вызваны с указанием дескриптора объекта синхронизации IPC в параметре syncHandle
. Чтобы создать объекта синхронизации IPC, нужно вызвать функцию KnIpcCreateSyncObject()
. (Дескриптор объекта синхронизации IPC не может быть передан другому процессу, так как в маске прав этого дескриптора не установлен необходимый для этого флаг.)
Функция KnIpcSetInterrupt()
переводит объект синхронизации IPC в состояние, при котором прерываются системные вызовы в тех потоках процесса, которые заблокированы после вызова функции CallEx()
или RecvEx()
с указанием дескриптора этого объекта синхронизации IPC в параметре syncHandle
. Прерывание системного вызова возможно только на некоторых стадиях его выполнения. Системный вызов, выполняемый функцией CallEx()
, может быть прерван только тогда, когда на сервере еще не вызвана функция Recv()
или RecvEx()
для того IPC-канала, клиентский IPC-дескриптор которого указан при вызове функции CallEx()
. Системный вызов, выполняемый функцией RecvEx()
, может быть прерван только во время ожидания IPC-запроса от клиента.
Функция KnIpcClearInterrupt()
отменяет действие функции KnIpcSetInterrupt()
.
Чтобы удалить объект синхронизации IPC, нужно закрыть его дескриптор вызовом функции KnHandleClose()
, объявленной в заголовочном файле sysroot-*-kos/include/coresrv/handle/handle_api.h
из состава KasperskyOS SDK.
Сведения о функциях API
Функции ipc_api.h
Функция |
Сведения о функции |
---|---|
|
Назначение Создает объект синхронизации IPC. Параметры
Возвращаемые значения В случае успеха возвращает |
|
Назначение Переводит заданный объект синхронизации IPC в состояние, при котором системные вызовы Параметры
Возвращаемые значения В случае успеха возвращает |
|
Назначение Переводит заданный объект синхронизации IPC в состояние, при котором системные вызовы Параметры
Возвращаемые значения В случае успеха возвращает |