Windows2000虚拟地址空间是如何划分的

0~0XFFFF(64KB):不能用来检测空指针赋值(访问冲突) 

0x10000(64KB)~0x7FFEFFFF(2GB-64KB):Win32进程私有的(非保留的),用于程序代码和数据

0x7FFF0000(2GB-64KB)~0x7FFFFFFF(2GB):不能用来防止覆盖OS分区(访问冲突)

0x800000000(2GB)~0xFFFFFFFF(4GB):为操作系统保留,不可访问(访问冲突)

Windows2000虚拟地址空间使用

0x00030000~0x0012FFFF:线程栈

0x00130000~0x003FFFFF:堆(有时堆位于此处)

0x00400000~0x005FFFFF:可执行代码

0x00600000~0x0FFFFFFF:堆(有时堆位于此处)

0x10000000~0x5FFFFFFF:App DLLs、Msvcrt.dll、Mfc42.dll

0x77000000~0xFFFFFFFF:Advapi32.dll、Comctl32.dll、Gdi32.dll、Kernel32.dll、Ntdll.dll、Rpcrt4.dll、Shell32.dll、User32.dll

其中,0x00400000是所有版本的Windows能使用的最低基地址。

你可能感兴趣的:(windows,shell,user,OS,mfc)