API определен в заголовочном файле sysroot-*-kos/include/coresrv/blob/blob_api.h из состава KasperskyOS SDK.
API предназначен для получения доступа к именованным BLOB-объектам (англ. Binary Large Objects, BLOBs). Можно получить доступ к следующим BLOB-объектам:
Имя BLOB-объекта: romsf.0.
Имя BLOB-объекта: romsf.1.
Сведения о функциях API приведены в таблице ниже.
Получение дескриптора BLOB-объекта
Чтобы получить дескриптор BLOB-объекта по имени этого объекта, нужно вызвать функцию KnBlobGet().
Дескриптор BLOB-объекта можно передать другому процессу через IPC.
Дескриптор BLOB-объекта с образом ROMFS используется не только функциями API blob_api.h, но и является входными данными для функции KosRomFsMountByHandle() из API romfs.h.
Отображение BLOB-объекта на регион виртуальной памяти
Чтобы зарезервировать регион виртуальной памяти и отобразить на него BLOB-объект, нужно вызвать функцию KnBlobMap().
Один и тот же BLOB-объект может отображаться одновременно на несколько регионов виртуальной памяти в одном или нескольких процессах.
Чтобы освободить регион виртуальной памяти, зарезервированный вызовом функции KnBlobMap(), нужно закрыть дескриптор этого региона.
Получение размера BLOB-объекта
Чтобы получить размер BLOB-объекта, нужно вызвать функцию KnBlobGetSize(). Также размер BLOB-объекта передается через выходной параметр size функции KnBlobGet().
Удаление BLOB-объекта
Чтобы инициировать удаление BLOB-объекта, нужно вызвать функцию KnBlobRemove(). Фактически BLOB-объект будет удален после выполнения всех следующих условий:
Используя API romfs.h, следует учитывать, что при монтировании образа ROMFS вызовом функции KosRomFsMount() или KosRomFsMountByHandle() выполняется резервирование региона виртуальной памяти и отображение на него BLOB-объекта. При размонтировании образа ROMFS вызовом функции KosRomFsUnmount() или KosRomFsUnmountAll() выполняется освобождение региона виртуальной памяти, на который отображен BLOB-объект.
Используя API romfs.h, следует учитывать, что функция KosRomFsMount() закрывает дескриптор BLOB-объекта, а функция KosRomFsMountByHandle() этого не делает. Поэтому после вызова функции KosRomFsMountByHandle() дескриптор нужно закрыть самостоятельно.
Удаление BLOB-объекта может быть запрещено ядром KasperskyOS. В этом случае функция KnBlobRemove() возвращает rcInvalidOperation.
Сведения о функциях API
Функции blob_api.h
Функция |
Сведения о функции |
|---|---|
|
Назначение Позволяет получить дескриптор BLOB-объекта по имени этого объекта. Параметры
Возвращаемые значения В случае успеха возвращает |
|
Назначение Инициирует удаление BLOB-объекта. Параметры
Возвращаемые значения В случае успеха возвращает |
|
Назначение Резервирует регион виртуальной памяти и отображает на него BLOB-объект. Параметры
Возвращаемые значения В случае успеха возвращает Дополнительные сведения В параметре
В параметре
|
|
Назначение Позволяет получить размер BLOB-объекта. Параметры
Возвращаемые значения В случае успеха возвращает |