Virtual Address Space
The virtual address space for a process is the set of virtual memory addresses that it can use. The address space for each process is private and cannot be accessed by other processes unless it is shared.
A virtual address does not represent the actual physical location of an object in memory; instead, the system maintains a page table for each process, which is an internal data structure used to translate virtual addresses into their corresponding physical addresses. Each time a thread references an address, the system translates the virtual address to a physical address.
The virtual address space for 32-bit Windows is 4 gigabytes (GB) in size and divided into two partitions: one for use by the process and the other reserved for use by the system. For more information about the virtual address space in 64-bit Windows, see Virtual Address Space in 64-bit Windows.
You can use the following command to set a boot entry option that configures the size of the partition that is available for use by the process to a value between 2048 (2 GB) and 3072 (3 GB):
BCDEdit /set increaseuserva Megabytes
After the boot entry option is set, the memory range for each partition is as follows.
|Low (0x00000000 through Megabytes)||Used by the process.|
|High (Megabytes+1 through 0xFFFFFFFF)||Used by the system.|
Windows Server 2003: Set the /USERVA switch in boot.ini to a value between 2048 and 3072.