Компонент ExecutionManager
API определен в заголовочных файлах, расположенных в директории sysroot-*-kos/include/component/execution_manager/
из состава SDK.
Сценарий использования компонента ExecutionManager описан в статье "Запуск процесса с помощью KasperskyOS API".
Интерфейс execution_manager_proxy.h
API определен в заголовочном файле sysroot-*-kos/include/component/execution_manager/kos_ipc/execution_manager_proxy.h
Интерфейс содержит фабричный метод CreateExecutionManager()
для получения указателя на экземпляр интерфейса IExecutionManager
, необходимого для работы с компонентом ExecutionManager.
Пример использования:
client.cpp
Интерфейс IExecutionManager
API определен в заголовочном файле sysroot-*-kos/include/component/execution_manager/i_execution_manager.h
Интерфейс IExecutionManager
позволяет получить доступ к указателям на следующие интерфейсы:
IApplicationController
- интерфейс для запуска\остановки процессов;ISystemController
- интерфейс для управления системой.
Пример использования:
client.cpp
Интерфейс IApplicationController
API определен в заголовочном файле sysroot-*-kos/include/component/execution_manager/i_application_control.h
Интерфейс IApplicationController
предоставляет следующие методы, позволяющие изменять состояние процесса:
StartEntity(
const std::filesystem::path& runPath,
const StartEntityInfo& info,
StartEntityResultInfo& resInfo
) - метод для запуска процесса.RestartEntity(EntityId endId)
- метод для перезапуска ранее запущенного процесса.ShutdownEntity(EntityId entId)
- метод для отправки процессу сигнала на завершение.StopEntity(EntityId entId)
- метод для немедленной остановки исполнения процесса.
Метод StartEntity()
принимает путь к исполняемому файлу, который нужно запустить, а также структуру с параметрами запуска процесса StartEntityInfo
; а возвращает структуру с результатами запуска процесса StartEntityResultInfo
. Все поля структуры StartEntityInfo
являются опциональными для инициализации.
Остальные методы принимают структуру EntityId
, идентифицирующую запущенный процесс.
Пример использования:
client.cpp
Интерфейс ISystemController
API определен в заголовочном файле sysroot-*-kos/include/component/execution_manager/i_system_control.h
Интерфейс ISystemController
предоставляет следующий метод для управления системой:
StopAllEntities()
- метод останавливает все запущенные процессы; затем завершает процесс ExecutionManager; а затем отправляет в ядро запрос на выключение устройства.
Пример использования:
client.cpp