KnVmAllocate()

Функция объявлена в файле coresrv/vmm/vmm_api.h.

void *KnVmAllocate(void *addr, rtl_size_t size, int flags);

Функция резервирует диапазон физических страниц, задаваемый параметрами addr и size. Если указан флаг VMM_FLAG_COMMIT, функция резервирует и передает страницы за один вызов.

Параметры:

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

Флаги аллокации

В параметре flags можно использовать следующие флаги (vmm/flags.h):

Допустимые комбинации атрибутов защиты памяти:

Пример

coredump->base = KnVmAllocate(RTL_NULL, vmaSize,

VMM_FLAG_READ | VMM_FLAG_RESERVE |

VMM_FLAG_WRITE | VMM_FLAG_COMMIT |

VMM_FLAG_LOCKED);

При необходимости можно изменить заданные атрибуты защиты участка памяти с помощью функции KnVmProtect().

В начало