KasperskyOS Community Edition 1.1

Аллокация памяти

В этом разделе

KosMemAlloc()

KosMemAllocEx()

KosMemFree()

KosMemGetSize()

KosMemZalloc()

В начало
[Topic api_memory_alloc]

KosMemAlloc()

Функция объявлена в файле kos/alloc.h.

void *KosMemAlloc(rtl_size_t size);

Функция выделяет (резервирует и передает) участок памяти размером size байт.

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

Память, выделенная с помощью функции KosMemAlloc(), имеет следующие флаги аллокации: VMM_FLAG_READ | VMM_FLAG_WRITE, VMM_FLAG_RESERVE, VMM_FLAG_COMMIT, VMM_FLAG_LOCKED. Чтобы выделить память с другими флагами аллокации, используйте функцию KnVmAllocate().

В начало
[Topic kos_mem_alloc]

KosMemAllocEx()

Функция объявлена в файле kos/alloc.h.

void *KosMemAllocEx(rtl_size_t size, rtl_size_t align, int zeroed);

Функция аналогична KosMemAlloc(), но при этом имеет дополнительные параметры:

  • align – выравнивание участка памяти в байтах (степень двойки);
  • zeroed – нужно ли заполнить участок памяти нулями (1 – заполнить, 0 – не заполнять).
В начало
[Topic kos_mem_alloc_ex]

KosMemFree()

Функция объявлена в файле kos/alloc.h.

void KosMemFree(void *ptr);

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

  • ptr – указатель на освобождаемый участок памяти.
В начало
[Topic kos_mem_free]

KosMemGetSize()

Функция объявлена в файле kos/alloc.h.

rtl_size_t KosMemGetSize(void *ptr);

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

  • ptr – указатель на участок памяти.
В начало
[Topic kos_mem_get_size]

KosMemZalloc()

Функция объявлена в файле kos/alloc.h.

void *KosMemZalloc(rtl_size_t size);

Функция аналогична KosMemAlloc(), но при этом заполняет выделяемый участок памяти нулями.

В начало
[Topic kos_mem_zalloc]