_PageReserve

#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