API определен в заголовочном файле sysroot-*-kos/include/component/execution_manager/i_application_control.h из состава KasperskyOS SDK.
API позволяет запускать процесс из исполняемого файла, а также останавливать процесс.
Сведения о функциях API приведены в таблице ниже.
Чтобы запустить процесс, нужно вызвать функцию StartEntity(). Через входной параметр info эта функция принимает параметры для запуска процесса в виде структуры StartEntityInfo. Все поля этой структуры являются опциональными для инициализации. Через выходной параметр resInfo эта функция возвращает ссылку на структуру StartEntityResultInfo с результатами запуска процесса.
Чтобы остановить процесс, нужно вызвать функцию ShutdownEntity() или StopEntity(). Через входной параметр entId эти функции принимают дескриптор, идентифицирующий запущенный процесс.
structIApplicationController
{
structStartEntityInfo
{
// Имя процесса. Если не указано, то будет использовано имя класса процесса.// Если не указано имя класса процесса, то будет использовано имя исполняемого файла.
std::string entityName;
// Класс процесса. Если не указан, то будет использовано имя процесса.// Если не указано имя процесса, то будет использовано имя исполняемого файла.
std::string eiid;
// Аргументы командной строки.
std::vector<std::string> args;
// Переменные окружения.
std::vector<std::string> envs;
// Политика перезапуска процесса при его аварийном завершении. Возможные значения:// EntityRestartPolicy::DoNotRestart - не перезапускать.// EntityRestartPolicy::AlwaysRestart - всегда перезапускать.
EntityRestartPolicy restartPolicy { EntityRestartPolicy::DoNotRestart };
};
structStartEntityResultInfo
{
// Класс безопасности, присвоенный процессу.
std::string eiid;
// Дескриптор, идентифицирующий запущенный процесс.
EntityId entId;
// Идентификатор безопасности запущенного процесса.
Uid sid;
// Имя запущенного процесса.
std::string taskName;
};
};
Функции i_application_control.h
Функция
Сведения о функции
StartEntity()
Назначение
Запускает процесс.
Параметры
[in] runPath – путь к исполняемому файлу, который нужно запустить.
[in] info – структура с параметрами запуска процесса StartEntityInfo.
[out] resInfo – структура с результатами запуска процесса StartEntityResultInfo.
[out] containerPath – путь к изолированному хранилищу данных процесса.
Возвращаемые значения
В случае успеха возвращает kos::Ok, иначе возвращает код ошибки.