Jump to content

KernVMLock: Difference between revisions

From EDM2
No edit summary
No edit summary
 
Line 5: Line 5:


==Parameters==
==Parameters==
;flags:One or more of the following bits:
;''flags'' ([[ULONG]]) - input:One or more of the following bits:
:KEE_VML_NOTBLOCK - Don't block the call, if the pages can't be locked.  
:KEE_VML_NOTBLOCK - Don't block the call, if the pages can't be locked.  
:KEE_VML_CONTIG - Pages locked must be contiguous.  
:KEE_VML_CONTIG - Pages locked must be contiguous.  
Line 12: Line 12:
:KEE_VML_LONGLOCK - The lock is for long time.  
:KEE_VML_LONGLOCK - The lock is for long time.  
:KEE_VML_VERIFYONLY - Verify the accessibility of the region. If KEE_VML_WRITEABLE is set, check for R/W access, else R/O.
:KEE_VML_VERIFYONLY - Verify the accessibility of the region. If KEE_VML_WRITEABLE is set, check for R/W access, else R/O.
;linaddr:linear address of the memory region.  
;''linaddr'' ([[PVOID]]) - input:linear address of the memory region.  
;size:Size of the memory region.  
;''size'' ([[ULONG]]) - input:Size of the memory region.  
;lock:Pointer to a lock data structure that contains the lock information.  
;''lock'' (KEEVMLOCK*) - input:Pointer to a lock data structure that contains the lock information.  
;pglist:Pointer to a pagelist structure, provided by the user  
;''pglist'' (KEEVMPageList*) - input:Pointer to a pagelist structure, provided by the user  
;pgsize:Pointer to an ULONG where the size of the pagelist structure is returned.
;''pgsize'' ([[PULONG]]) - input:Pointer to an ULONG where the size of the pagelist structure is returned.


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

Latest revision as of 03:54, 28 May 2025

This is the equivalent of the DevHlp_VMLock function. See the PDD docs for details.

Synopsis

APIRET APIENTRY KernVMLock(ULONG flags,PVOID linaddr,ULONG size, KEEVMLOCK* lock, KEEVMPageList* pglist, PULONG pgsize);

Parameters

flags (ULONG) - input
One or more of the following bits:
KEE_VML_NOTBLOCK - Don't block the call, if the pages can't be locked.
KEE_VML_CONTIG - Pages locked must be contiguous.
KEE_VML_16M - Pages must be below 16MB.
KEE_VML_WRITEABLE - Pages will be writeable.
KEE_VML_LONGLOCK - The lock is for long time.
KEE_VML_VERIFYONLY - Verify the accessibility of the region. If KEE_VML_WRITEABLE is set, check for R/W access, else R/O.
linaddr (PVOID) - input
linear address of the memory region.
size (ULONG) - input
Size of the memory region.
lock (KEEVMLOCK*) - input
Pointer to a lock data structure that contains the lock information.
pglist (KEEVMPageList*) - input
Pointer to a pagelist structure, provided by the user
pgsize (PULONG) - input
Pointer to an ULONG where the size of the pagelist structure is returned.