Quote from:
http://www.microsoft.com/technet/technetmag/issues/2007/03/VistaKernel/
Dynamic Kernel Address Space
Windows and the applications that run on it have bumped their heads on the
address space limits of 32-bit processors. The Windows kernel is constrained
by default to 2GB, or half the total 32-bit virtual address space, with the
other half reserved for use by the process whose thread is currently running
on the CPU. Inside its half, the kernel has to map itself, device drivers,
the file system cache, kernel stacks, per-session code data structures, and
both non-paged (locked-in physical memory) and paged buffers allocated by
device drivers. Prior to Windows Vista, the Memory Manager determined at
boot time how much of the address space to assign to these different
purposes, but this inflexibility sometimes led to situations where one of
the regions became full while others still had plenty of available space.
The exhaustion of an area can lead to application failures and prevent
device drivers from completing I/O operations.
In 32-bit Windows Vista, the Memory Manager dynamically manages the kernel's
address space, allocating and deal locating space to various uses as the
demands of the workload require. Thus, the amount of virtual memory used to
store paged buffers can grow when device drivers ask for more, and it can
shrink when the drivers release it. Windows Vista will therefore be able to
handle a wider variety of workloads and likewise the 32-bit version of the
forthcoming Windows Server® code-named "Longhorn," will scale to handle more
concurrent Terminal Server users.
Of course, on 64-bit Windows Vista systems, address space constraints are
not currently a practical limitation and therefore require no special
treatment as they are configured to their maximums.