Получение доступа к именованным BLOB-объектам (blob_api.h)

12 января 2026

ID libkos_blob_api

API определен в заголовочном файле sysroot-*-kos/include/coresrv/blob/blob_api.h из состава KasperskyOS SDK.

API предназначен для получения доступа к именованным BLOB-объектам (англ. Binary Large Objects, BLOBs). Можно получить доступ к следующим BLOB-объектам:

  • Образу ROMFS, поставляемому в составе образа ядра KasperskyOS.

    Имя BLOB-объекта: romsf.0.

  • Образу ROMFS, помещаемому в память загрузчиком (аналогично initrd в Linux).

    Имя 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-объект будет удален после выполнения всех следующих условий:

  1. Освобожден каждый регион виртуальной памяти, на который отображен BLOB-объект, во всех процессах, в которых выполнено это отображение.

    Используя API romfs.h, следует учитывать, что при монтировании образа ROMFS вызовом функции KosRomFsMount() или KosRomFsMountByHandle() выполняется резервирование региона виртуальной памяти и отображение на него BLOB-объекта. При размонтировании образа ROMFS вызовом функции KosRomFsUnmount() или KosRomFsUnmountAll() выполняется освобождение региона виртуальной памяти, на который отображен BLOB-объект.

  2. Закрыт или отозван каждый дескриптор BLOB-объекта во всех процессах, которые владеют этими дескрипторами.

    Используя API romfs.h, следует учитывать, что функция KosRomFsMount() закрывает дескриптор BLOB-объекта, а функция KosRomFsMountByHandle() этого не делает. Поэтому после вызова функции KosRomFsMountByHandle() дескриптор нужно закрыть самостоятельно.

Удаление BLOB-объекта может быть запрещено ядром KasperskyOS. В этом случае функция KnBlobRemove() возвращает rcInvalidOperation.

Сведения о функциях API

Функции blob_api.h

Вам помогла эта статья?
Что нам нужно улучшить?
Спасибо за ваш отзыв, вы помогаете нам становиться лучше!
Спасибо за ваш отзыв, вы помогаете нам становиться лучше!