Выделение и освобождение памяти (alloc.h)

21 мая 2024

ID libkos_alloc_api

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

API предназначен для выделения и освобождения памяти. Выделенная память представляет собой зафиксированный регион виртуальной памяти, к которому разрешен доступ на чтение и запись.

Сведения о функциях API приведены в таблице ниже.

Функции alloc.h

Функция

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

KosMemAllocEx()

Назначение

Выделяет память.

Параметры

  • [in] size – размер выделяемой памяти в байтах.
  • [in] align – значение, задающее выравнивание выделяемой памяти. Должно быть степенью двойки. Адрес выделяемой памяти может быть невыравненным (align=1) или выравненным (align=2,4,...,2^N) на границу 2^N-байтовой последовательности (например, двухбайтовой, четырехбайтовой). При выравнивании адреса размер выделяемой памяти может быть увеличен до ближайшего значения, кратного 2^N.
  • [in] zeroed – значение, задающее инициализацию выделяемой памяти (1 – инициализировать нулями, 0 – не инициализировать).

Возвращаемые значения

В случае успеха возвращает указатель на выделенную память, иначе возвращает RTL_NULL.

KosMemAlloc()

Назначение

Выделяет память.

Параметры

  • [in] size – размер выделяемой памяти в байтах.

Возвращаемые значения

В случае успеха возвращает указатель на выделенную памяти, иначе возвращает RTL_NULL.

KosMemZalloc()

Назначение

Выделяет память и инициализирует ее нулями.

Параметры

  • [in] size – размер выделяемой памяти в байтах.

Возвращаемые значения

В случае успеха возвращает указатель на выделенную память, иначе возвращает RTL_NULL.

KosMemFree()

Назначение

Освобождает память.

Параметры

  • [in] ptr – указатель на освобождаемую память.

Возвращаемые значения

Нет.

KosMemGetSize()

Назначение

Позволяет получить фактический размер выделенной памяти.

Фактический размер выделенной памяти превышает запрошенный, так как включает размер служебных данных, а также может быть увеличен в результате выравнивания при вызове функции KosMemAllocEx().

Параметры

  • [in] ptr – указатель на выделенную память.

Возвращаемые значения

Фактический размер выделенной памяти в байтах.

KosMemGetOrigSize()

Назначение

Позволяет получить размер памяти, который был запрошен при ее выделении.

Фактический размер выделенной памяти превышает запрошенный, так как включает размер служебных данных, а также может быть увеличен в результате выравнивания при вызове функции KosMemAllocEx().

Параметры

  • [in] ptr – указатель на выделенную память.

Возвращаемые значения

Размер памяти, который был запрошен при ее выделении, в байтах.

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