On 32-bit versions of Windows, the /3GB parameter enables 4 GT RAM Tuning, a feature that enlarges the user-mode virtual address space to 3 GB and restricts the kernel-mode components to the remaining 1 GB.
/3GB [ /userva=SizeInMB ]
- Specifies an alternate amount of user-mode virtual address space for operating systems booted with the /3GB parameter.
- Specifies the amount of memory, in megabytes, for user-mode virtual address space. This variable can have any value between 2048 (2 GB) and 3072 (3 GB) megabytes in decimal notation. Windows uses the remaining address space (4 GB minus the specified amount) as its kernel-mode address space.
The /3GB parameter is supported on Windows Server 2003, Windows XP, Windows 2000, and Windows NT. On Windows Vista and later versions of Windows, use the IncreaseUserVA element in BCDEdit.
On Windows, by default, the lower 2 GB are reserved for user-mode programs and the upper 2 GB are reserved for kernel-mode programs. You can use this parameter to test the performance of your driver when it is running in a 1 GB kernel.
The 4 GT RAM Tuning feature is fully functional on Microsoft Windows NT Server 4.0, Enterprise Edition with Service Pack 3, Microsoft Windows 2000 Advanced Server, Microsoft Windows 2000 Datacenter Server, and all editions of Windows XP, Windows Server 2003, Windows Vista, and later versions of Windows.
On other versions of Windows NT and Windows 2000, this feature restricts the kernel to addresses above the 3 GB boundary. However, user-mode applications cannot access more than 2 GB of address space.
The /userva subparameter is designed for computers that need more than 2 GB but less than 3 GB of user-mode address space, particularly those that are running memory-intensive user-mode programs. When used without the /3GB parameter, /userva is ignored.
The /3GB and /userva parameters are valid only on boot entries for 32-bit versions of Windows on computers with x86 or x64-based processors.
To take advantage of the 3 GB available to user-mode programs, the program must be linked with the /LARGEADDRESSAWARE option.
On 64-bit versions of Windows Server 2003, the system automatically expands the virtual address space available to 32-bit user-mode programs linked with the /LARGEADDRESSAWARE option as needed without the /3GB boot parameter. On Windows Server 2003 RTM (without Service Pack 1), these 32-bit programs can access up to 3 GB of virtual address space. On Windows Server 2003 with Service Pack 1, they can access up to 4 GB of virtual address space. Native 64-bit user-mode programs can access up to 8 TB of virtual address space.
Booting with the /3GB parameter decreases the amount of kernel virtual address space on the system. In order to fit all of the kernel resources within the remaining 1 GB of virtual memory, NT-based Windows operating systems prior to Windows Vista, Windows restricts physical memory to frames below the 16 GB physical boundary and on Windows Vista, it restricts physical memory to frames below the 64 GB boundary. Because allocation of memory resources in Windows Vista is dynamic and, therefore, more adaptable and efficient, the system can devote more memory space to addressing, thereby accommodating more physical memory.
The following table lists the physical memory limits of 32-bit Windows operating systems that support the use of more than 4 GB of physical memory with and without the /3GB boot parameter.
|Operating system||Physical memory limit without /3GB||Physical memory limit with /3GB|
|Windows Vista||4 GB||4 GB (no effect)|
|Windows Vista, Datacenter Edition||128 GB||64 GB|
|Windows Server 2003, Enterprise Edition||32 GB||16 GB|
|Windows Server 2003, Enterprise Edition SP1||64 GB||16 GB|
|Windows Server 2003, Datacenter Edition||128 GB||16 GB|
|Windows Server 2003, Datacenter Edition SP1||128 GB||16 GB|
|Windows XP (all editions)||4 GB||4 GB (no effect)|
On Windows XP, some drivers, especially video adapter drivers with onboard RAM, cannot run with the /3GB parameter because they require more address space than the 1 GB kernel address space permits.
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows Server 2003, Enterprise" /fastdetect /3GB
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows Server 2003, Enterprise" /fastdetect /3GB /userva=3030
bootcfg /raw "/3GB" /A /ID 1
bootcfg /raw "/3GB /userva=3030" /A /ID 2