There are the following memory management services:
Device V86 Page Management
| Service | Description |
| _Assign_Device_V86_Pages | Assigns V86 pages to a virtual device. |
| _DeAssign_Device_V86_Pages | Frees V86 pages. |
| _Get_Device_V86_Pages_Array | Retrieves assignment arrays. |
| Hook_V86_Page | Installs a page-fault callback procedure. |
Free Physical Memory Management
| Service | Description |
| _AddFreePhysPage | Adds free physical pages. |
| _MapFreePhysReg | Maps pages into a free physical region. |
| _PageResetHandlePAddr | Adds physical pages to a memory block. |
| _SetFreePhysRegCalBk | Installs a free-physical-region callback. |
| _UnmapFreePhysReg | Unmaps pages in a free physical region. |
| _XchgFreePhysReg | Exchanges a physical address. |
GDT/LDT Management
| Service | Description |
| _Allocate_GDT_Selector | Allocates a GDT selector. |
| _Allocate_LDT_Selector | Allocates a selector. |
| _BuildDescriptorDWORDs | Builds a selector descriptor. |
| _Free_GDT_Selector | Frees a GDT selector. |
| _Free_LDT_Selector | Frees an LDT selector. |
| _GetDescriptor | Retrieves a copy of a descriptor. |
| _SetDescriptor | Sets the descriptor for a selector. |
Heap Allocation
| Service | Description |
| _HeapAllocate | Allocates memory from the heap. |
| _HeapFree | Frees a memory block from the heap. |
| _HeapGetSize | Returns the size of a heap memory block. |
| _HeapReAllocate | Reallocates a heap memory block. |
Memory Management for Protected-Mode
| Service | Description |
| _GetV86PageableArray | Returns pageable array. |
| _LinMapIntoV86 | Maps pages into V86 addresses. |
| _LinPageLock | Locks pages. |
| _LinPageUnLock | Unlocks pages. |
| _PageCheckLinRange | Checks range of linear addresses. |
| _PageDiscardPages | Discards pages. |
| _SelectorMapFlat | Returns the base address of the selector. |
| _SetResetV86Pageable | Modifies locking and unlocking. |
Miscellaneous Memory Management
| Service | Description |
| _AddInstanceItem | Add an instance item. |
| _Allocate_Device_CB_Area | Allocates a control block area. |
| _MapPhysToLinear | Returns the linear address of physical memory. |
Page Allocation and Management
| Service | Description |
| _CopyPageTable | Copies page-table entries. |
| _GetAppFlatDSAlias | Returns read-only selector for flat DS. |
| _GetDemandPageInfo | Retrieves information for demand paging. |
| _GetFirstV86Page | Returns number of first page for V86 memory. |
| _GetFreePageCount | Returns the number of free pages. |
| _GetGlblRng0V86IntBase | Returns address for ring-0 V86 handlers. |
| _GetLastV86Page | Returns number of last page of V86 memory. |
| _GetNulPageHandle | Returns handle of system nul page. |
| _GetSysPageCount | Returns count of system pages. |
| _GetVMPgCount | Returns count of pages in a virtual machine. |
| _ModifyPageBits | Modifies page attribute bits. |
| _PageAllocate | Allocates a memory block. |
| _PageFree | Frees a memory block. |
| _PageGetAllocInfo | Returns allocation information. |
| _PageGetSizeAddr | Returns size and address of memory block. |
| _PageLock | Locks pages. |
| _PageReAllocate | Reallocates a block of memory. |
| _PageUnLock | Unlocks pages. |
System-Internal Memory Management
| Service | Description |
| _GetSetPageOutCount | Sets or returns the page-out count. |
| _MMGR_Toggle_HMA | Enables or disables the HMA. |
| _PageOutDirtyPages | Flushes dirty pages. |
| _SetLastV86Page | Sets last page in V86 address space. |
| Set_Physical_HMA_Alias | Sets the physical HMA alias. |
V86 Address Space Mapping and Allocation
| Service | Description |
| _Add_Global_V86_Data_Area | Adds a region to global V86 data. |
| _Allocate_Global_V86_Data_Area | Allocates a global V86 data area. |
| _Allocate_Temp_V86_Data_Area | Allocates a V86 memory block. |
| _Free_Temp_V86_Data_Area | Frees a V86 memory block. |
| _MapIntoV86 | Maps pages into V86 address. |
| _PhysIntoV86 | Maps physical pages into V86 memory. |
| _TestGlobalV86Mem | Tests for global V86 memory. |