This project is about creating a memory management library for Windows kernel drivers which is PAE aware under 32 Bit Windows. That means if PAE is enabled it will be able to reserve blocks of (virtually contiguous) physical memory of up to128 GB. And it allows to define one or more virtual address windows to access the physical memory blocks by shifting the virtual address windows along the physical memory blocks. Physical memory and virtual address space sizes shall be freely chooseable within the actual limits of the system the software is running on.
In detail, we require the following:
A) Allocate a (virtually contiguous) physical memory area of 16 MB - 128 GB
B) "have" a virtual address window to the physical memory area of 16MB - 2GB
C) the address window should be "shiftable", either arbitrarily or in discrete steps up to its own size (for example: 0, 16 MB, 32 MB, 48 MB, ...)
D) the address window should be shiftable to save virtual address space reallocation (which in theory would cost more time than reusing/shifting the same virtual space - if not, please let me know).
E) it should be possible to define several sets of physical memory and virtual address windows to use them independently
F) it should be possible to define several physical memory areas and one single virtual address window to use with all the different physical areas
G) all resources reserved can be released again on demand.
Please also see the attached picture, refering to A)-F) of the above list.