Можно выделить 4 уровня функций работы с памятью, причём функции последнего уровня зависят от функций предыдущего уровня.
1. Функции управления памятью на уровне системных сервисов – 0 кольцо. В Windows 95, 98 это VMM.vxd, в Windows NT, 2000 – это ntoskrnl.exe. Эти функции предназначены для выделения небольших областей памяти и манипулирования страницами этих областей, то есть единица выделения – это страница. Прикладные программы не имеют право вызывать эти функции.
2. VirtualXXX. Это функции управления виртуальной памятью, поддерживаемые kernel32. Эти функции поддерживает ядро. По функциональным возможностям аналогичны функциям 1 уровня. Эти функции могут использоваться приложениями пользователей.
3. Функции для работы с кучей. Функции Win32API, поддерживается kernel32, позволяют выделять в память из кучи минимальный блок - 4 байта. По смыслу совпадают с функциями языков програм-мирования.
HeapXXX, new, malloc. Примыкают функции LocalHeap и GlobalHeap (устаревшие – используются для совместности и выполняют одинаковые действия).
4. Функции для работы с памятью конкретных языков программирования.
New, malloc.
12. Объекты ядра. Процессы, потоки и модули в Win32.