Jump to content

KernVMAlloc: Difference between revisions

From EDM2
Ak120 (talk | contribs)
mNo edit summary
Line 5: Line 5:


==Parameters==
==Parameters==
;size:Number of bytes to allocate.  
;''size'' - input: Number of bytes to allocate.  
;flags:One or more of the following flags. See DevHlp_VMAlloc docs for details.
;''flags'' - input: One or more of the following flags. See DevHlp_VMAlloc docs for details.
  KEE_VMA_16MB      allocate memory from below 16MB  
  KEE_VMA_16MB      allocate memory from below 16MB  
  KEE_VMA_FIXED      allocate memory that won't be swapped out  
  KEE_VMA_FIXED      allocate memory that won't be swapped out  
Line 19: Line 19:
  KEE_VMA_SHARED    allocate memory that is shareable  
  KEE_VMA_SHARED    allocate memory that is shareable  
  KEE_VMA_USEHIGHMEM allocate memory from above 16MB.  
  KEE_VMA_USEHIGHMEM allocate memory from above 16MB.  
;linaddr:address of a variable to receive the linear address of the memory.
;''linaddr'' - input: 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.
;''physaddr'' - input: 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.  
;''sel'' - input: address of a variable to receive the allocated GDT selector, when KEE_VMA_GETSEL is set.  


[[Category:KEE]]
[[Category:KEE]]

Revision as of 19:10, 19 May 2025

This is the equivalent of the DevHlp_VMAlloc function.

Synopsis

APIRET APIENTRY KernVMAlloc(ULONG size, ULONG flags, PVOID* linaddr, PVOID* physaddr, PSHORT sel);

Parameters

size - input
Number of bytes to allocate.
flags - input
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 - input
address of a variable to receive the linear address of the memory.
physaddr - input
address of a variable that contains the physical address of the memory.
sel - input
address of a variable to receive the allocated GDT selector, when KEE_VMA_GETSEL is set.