KernVMAlloc
Appearance
Synopsis
APIRET APIENTRY KernVMAlloc(ULONG size, ULONG flags, PVOID* linaddr, PVOID* physaddr, PSHORT sel);
Description
This is the equivalent of the DevHlp_VMAlloc function.
Parameters
size
Number of bytes to allocate.
flags
One or more of the following flags. See DevHlp_VMAlloc docs for details.
KEE_VMA_16MB
allocate memory from below 16MB
KEE_VMA_FIXED
allocate memory that won't be swapped out
KEE_VMA_SWAP
allocate memory that is swappable
KEE_VMA_CONTIG
allocate contiguous physical memory pages
KEE_VMA_PHYS
allocate physical memory (pass address in physaddr argument)
KEE_VMA_PROCESS
allocate memory in the process address space.
KEE_VMA_SGSCONT
register memory under screen group control
KEE_VMA_GETSEL
return a GDT selector for the allocated memory. This option exists also in DevHlp_VMAlloc (undocumented).
KEE_VMA_RESERVE
Don't commit the allocated memory.
KEE_VMA_SHARED
allocate memory that is shareable
KEE_VMA_USEHIGHMEM
allocate memory from above 16MB.
linaddr
address of a variable to receive the linear address of the memory.
physaddr
address of a variable that contains the physical address of the memory.
sel
address of a variable to receive the allocated GDT selector, when KEE_VMA_GETSEL is set.