@Joshua: The low bytes of the Peb and Teb are contractually set by Microsoft and won't change because too many people rely on stuff like the peb pointer in the Teb, the IsBeingDebugged value in the teb and the location of the NtTib structure in it.
The high bytes are uncontractual and not only can change between versions of Windows, but _DO_ change between versions of Windows. That's why MSDN doesn't give you information about it (but WinDbg .reload; dt nt!_PEB .; will)