Содержание
Компонент ExecutionManager
API определен в заголовочных файлах, расположенных в директории sysroot-*-kos/include/component/execution_manager/
из состава KasperskyOS SDK.
Сценарий использования компонента ExecutionManager описан в статье "Запуск процессов с помощью системной программы ExecutionManager".
Интерфейс execution_manager_proxy.h
API определен в заголовочном файле sysroot-*-kos/include/component/execution_manager/kos_ipc/execution_manager_proxy.h
из состава KasperskyOS SDK.
Интерфейс содержит функцию CreateExecutionManager()
для получения указателя на экземпляр интерфейса IExecutionManager
, необходимого для работы с компонентом ExecutionManager. Через входной параметр cfg
эта функция принимает параметры конфигурации в виде структуры ExecutionManagerConfig
. Все поля этой структуры опциональны для заполнения.
Функции execution_manager_proxy.h
Функция |
Сведения о функции |
---|---|
|
Назначение Получение указателя на экземпляр интерфейса Параметры
Возвращаемые значения В случае успеха возвращает |
Пример использования:
client.cpp
Интерфейс IExecutionManager
API определен в заголовочном файле sysroot-*-kos/include/component/execution_manager/i_execution_manager.h
из состава KasperskyOS SDK.
Интерфейс IExecutionManager
позволяет получить доступ к указателям на следующие интерфейсы:
IProcessControl
– интерфейс, который позволяет запускать процесс из исполняемого файла, установленного компонентом PackageManager из KPA-пакета в решение на базе KasperskyOS, а также получать сведения о процессе (включая информацию о его завершении) и останавливать его.IApplicationController
– интерфейс, который позволяет запускать процесс из любого исполняемого файла, чье расположение в файловой системе известно, а также останавливать этот процесс.IStateProvider
– интерфейс для получения сведений о процессе, запущенном с использованием интерфейсаIApplicationController
.ISystemController
– интерфейс для управления системой.
Пример использования:
client.cpp
Интерфейс IProcessControl
API определен в заголовочном файле sysroot-*-kos/include/alm/execution_manager/i_process_control.h
из состава KasperskyOS SDK.
API позволяет:
- запускать процесс из исполняемого файла, установленного компонентом PackageManager из KPA-пакета в решение на базе KasperskyOS;
- получать сведения о процессе (включая информацию о его завершении);
- останавливать процесс.
Сведения о функциях API приведены в таблице ниже.
Запуск процесса
Чтобы запустить процесс, нужно вызвать функцию StartProcess()
. Через входной параметр opts
эта функция принимает параметры для запуска процесса в виде структуры StartOptions
. Все поля этой структуры являются опциональными для инициализации.
При инициализации структуры StartOptions
транспортный контейнер дескриптора parent
заполняется значениями по умолчанию, которые означают отсутствие родительского процесса. Передавая в этом параметре запускаемому дочернему процессу дескриптор родительского процесса, можно создавать иерархию процессов.
Вектор userHandles
является компонентом структуры StartOptions
и содержит список пользовательских дескрипторов, которые будут переданы процессу при его запуске. Элементами списка являются пары, задаваемые в структуре UserHandleItem
и состоящие из дескриптора и его имени. После запуска процесса переданные ему дескрипторы могут быть найдены с помощью функции KosTaskLookupResource()
по их именам.
Входные параметры pkgId
и runConfigId
функции StartProcess()
определены в манифесте KPA-пакета. Их значения могут быть получены с использованием функций из интерфейса IPackageManifest компонента PackageManager.
Остановка процесса
Чтобы остановить процесс, нужно вызвать функцию StopProcess()
. Через входной параметр stopPolicy
эта функция принимает политику остановки процесса из перечисления StopPolicy
.
Получение сведений о процессе
Чтобы запросить сведения о процессе, нужно вызвать функцию GetProcessState()
. Через выходной параметр state
эта функция возвращает сведения о процессе в виде структуры ProcessContext
.
Перечисление state
является компонентом структуры ProcessContext
и описывает состояние процесса.
Перечисление exitStatus
является компонентом структуры ProcessContext
и описывает причину остановки процесса. Перечисление ExecutableExitStatus
определено в заголовочном файле sysroot-*-kos/include/alm/execution_manager/execution_manager_types.h
из состава KasperskyOS SDK.
Числовой параметр exitCode
является компонентом структуры ProcessContext
и содержит код возврата для процесса, который остановился самостоятельно, в том числе после получения сигнала на свою остановку. Значения для этого кода возврата определяются разработчиком решения на базе KasperskyOS.
Числовой параметр exitReason
является компонентом структуры ProcessContext
и содержит код возврата, который уточняет причину неудачной попытки запуска процесса, либо rcOk
в случае успешного запуска. Параметр определен в заголовочном файле sysroot-*-kos/include/rtl_cpp/retcode.h
из состава KasperskyOS SDK. В этом файле содержатся коды возврата, которые являются общими для API любых компонентов решения и их составных частей (см. "Коды возврата").
Функции i_process_control.h
Функция |
Сведения о функции |
---|---|
|
Назначение Запускает процесс. Параметры
Возвращаемые значения В случае успеха возвращает |
|
Назначение Останавливает процесс. Параметры
Возвращаемые значения В случае успеха возвращает |
|
Назначение Запрашивает сведения о процессе. Параметры
Возвращаемые значения В случае успеха возвращает |
Пример использования:
client.cpp
Интерфейс IApplicationController
API определен в заголовочном файле sysroot-*-kos/include/component/execution_manager/i_application_control.h
из состава KasperskyOS SDK.
API позволяет запускать процесс из исполняемого файла, а также останавливать процесс.
Сведения о функциях API приведены в таблице ниже.
Чтобы запустить процесс, нужно вызвать функцию StartEntity()
. Через входной параметр info
эта функция принимает параметры для запуска процесса в виде структуры StartEntityInfo
. Все поля этой структуры являются опциональными для инициализации. Через выходной параметр resInfo
эта функция возвращает ссылку на структуру StartEntityResultInfo
с результатами запуска процесса.
Чтобы остановить процесс, нужно вызвать функцию ShutdownEntity()
или StopEntity()
. Через входной параметр entId
эти функции принимают дескриптор, идентифицирующий запущенный процесс.
Функции i_application_control.h
Функция |
Сведения о функции |
---|---|
|
Назначение Запускает процесс. Параметры
Возвращаемые значения В случае успеха возвращает |
|
Назначение Отправляет процессу сигнал на завершение. Параметры
Возвращаемые значения В случае успеха возвращает |
|
Назначение Немедленно останавливает исполнение процесса. Параметры
Возвращаемые значения В случае успеха возвращает |
Пример использования:
client.cpp
Интерфейс IStateProvider
API определен в заголовочном файле sysroot-*-kos/include/component/execution_manager/i_state_control.h
из состава KasperskyOS SDK.
API позволяет получать сведения о процессе, запущенном с использованием функции StartEntity()
из API IApplicationController (см. "Интерфейс IApplicationController"), включая информацию о причине его завершения.
Сведения о функциях API приведены в таблице ниже.
Чтобы получить сведения о процессе, нужно вызвать функцию GetApplicationState()
. Через входной параметр entityId
эта функция принимает значение типа EntityId
, которое идентифицирует запущенный процесс. Через выходной параметр appState
эта функция возвращает сведения о процессе в виде структуры AppContext
. Структура AppContext
определена в заголовочном файле sysroot-*-kos/include/component/execution_manager/types.h
из состава KasperskyOS SDK
Перечисление state
является компонентом структуры AppContext
и описывает состояние процесса. Перечисление state
определено в заголовочном файле sysroot-*-kos/include/component/execution_manager/types.h
из состава KasperskyOS SDK.
Перечисление exitStatus
является компонентом структуры AppContext
и описывает причину остановки процесса. Перечисление ExecutableExitStatus
определено в заголовочном файле sysroot-*-kos/include/alm/execution_manager/execution_manager_types.h
из состава KasperskyOS SDK.
Числовой параметр exitCode
является компонентом структуры AppContext
и содержит код возврата для процесса, который остановился самостоятельно, в том числе после получения сигнала на свою остановку. Значения для этого кода возврата определяются разработчиком решения на базе KasperskyOS.
Числовой параметр exitReason
является компонентом структуры AppContext
и содержит код возврата, который уточняет причину неудачной попытки запуска процесса, либо rcOk
в случае успешного запуска процесса. Параметр определен в заголовочном файле sysroot-*-kos/include/rtl_cpp/retcode.h
из состава KasperskyOS SDK. В этом файле содержатся коды возврата, которые являются общими для API любых компонентов решения и их составных частей (см. "Коды возврата").
Функции i_state_control
Функция |
Сведения о функции |
---|---|
|
Назначение Запрашивает сведения о процессе. Параметры
Возвращаемые значения В случае успеха возвращает |
Пример использования:
client.cpp
Интерфейс ISystemController
API определен в заголовочном файле sysroot-*-kos/include/component/execution_manager/i_system_control.h
из состава KasperskyOS SDK.
API позволяет завершать работу системы.
Сведения о функциях API приведены в таблице ниже.
Функции i_system_control.h
Функция |
Сведения о функции |
---|---|
|
Назначение Останавливает все запущенные процессы; затем завершает процесс ExecutionManager; а затем отправляет в ядро запрос на выключение устройства. Параметры Нет. Возвращаемые значения В случае успеха возвращает |
Пример использования:
client.cpp