Every process has its own PML4 table, and the first 9 bits of the 48-bit virtual address describe the index of a PML4 entry. The first bit of the PML4 index is clear for user code and set for kernel code. So that means there are 256 PML4 entries in every process that point to system PDPTs, and that means that kernel page maps must be kept up to date for every process running or it could cause problems with syscalls. How are the tables kept updated? I am guessing system-owned PML4 entries in every process point to system PDPT's but if a PML4 entry for the system gets updated how does the Windows go about updating PML4 entries for every process on the system? Also in Windows Internals Volume 7 part 1 it says that on process startup a process's page directories are initialized to point to system page tables, however this seems inefficient because that would mean each process needs its own PDPTs pointing to its own page directories when it could just use the already existing system PDPTs and page directories.