How a Virtual Address Space Is Partitioned

Each process’ virtual address space is split into partitions. The address space is partitioned based on the underlying implementation of the operating system. Partitions vary slightly among the different Microsoft Windows kernels. Table 13-1 shows how each platform partitions a process’ address space.

As you can see, the 32-bit Windows kernel and 64-bit Windows kernel have nearly identical partitions; what differs are the partition sizes and locations. Let’s examine how the system uses each of these partitions.

Table 13-1. How a Process’ Address Space Is Partitioned

Partition

x86 32-Bit Windows

x86 32-Bit Windows with 3 GB User-Mode

x64 64-Bit Windows

IA-64 64-Bit Windows

NULL-Pointer Assignment

0x00000000

0x0000FFFF ...

Get Windows® via C/C++, Fifth Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.