#include <vmm.h> ULONG EXTERNAL _PageReserve(ULONG page, ULONG npages, ULONG flags);
Reserves a range of linear addresses in the current context without allocating any physical storage.
page
Linear page number of the start of the range, or one of these values:
PR_PRIVATE | Anywhere in current ring 3 private arena. |
PR_SHARED | Anywhere in the ring 3 shared arena. |
PR_SYSTEM | Anywhere in the system arena. |
If an explicit page is specified, the memory manager attempts to allocate that linear page address. If the linear address is already in use, the service fails.
npages
Number of linear pages to reserve.
flags
Zero or more of these values:
PR_FIXED | Prevents _PageReAllocate from moving the pages. |
PR_STATIC | Disallows commit, decommit and free operations unless a static flag is specified. |
PR_4MEG | Forces the reserved address to be aligned on a four-megabyte boundary. This flag is ignored if the page parameter specifies a specific address. |
Before touching any linear page reserved by this service, you must commit physical storage to the page using the _PageCommit, _PageCommitContig, or _PageCommitPhys service.
See also _PageCommit, _PageCommitContig, _PageCommitPhys