怎么知道哪些物理内存是系统用的,哪些又是用户可以访问的?

romaut 2002-02-27 03:28:47
各位大哥:用什么方法去判断物理内存的可存取空间呢?
...全文
293 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
ccemail 2002-03-21
  • 打赏
  • 举报
回复


你可以随便用,
wowocock 2002-03-20
  • 打赏
  • 举报
回复
SEH就是在发生GP时用来进行处理的程序,通常由FS;[0]所指,你可以将其指向你自己的处理程序,如显示一个消息框。如果你所访问的地址可被系统允许,就不会
调用SEH。
romaut 2002-03-20
  • 打赏
  • 举报
回复
to cm_w:
如何利用结构化异常处理(SHE)访问内存呢,兄弟我不明白,能不能说详细点呢.谢谢.
cm_w 2002-03-09
  • 打赏
  • 举报
回复
1.到ring0直接访问页表
2.利用结构化异常处理(SHE)访问内存,成功就是能访问的否则就不能访问
romaut 2002-03-05
  • 打赏
  • 举报
回复
谢了,那如何用代码实现判断呢?
vcshcn 2002-03-04
  • 打赏
  • 举报
回复
我不知道我说的对不对:是不是从页表的32个字节中区分呀,什么未分配、以分配等
wowocock 2002-03-04
  • 打赏
  • 举报
回复
以上是指WIN32下的4GB线性地址空间,而不是物理地址。
IA32采用2级保护模式,0~3级的段级保护,及两级页表的页级保护
在页级保护中页目录表及页表都是对齐4K,即低12位没用,其中页表的低3
位代表P,R/W,U/S,其中U/S则说明该页为system,or user
vBin 2002-03-04
  • 打赏
  • 举报
回复
我不知道你要的是不是这个,我就从书上给你扒下来啦。
希望能给你一点帮助。



下面这个是指WIN95下的进程地址空间

FFFFFFFFH
VXD、内存管理器,文件系统码可以读写(1GB)
C0000000H

BFFFFFFFH
内存映射文件、WIN32 DLL、WIN16应用程序、内存分配可读写(1GB)
80000000H

7FFFFFFFH
进程私有空间(4MB-1GB)
00400000H

003FFFFFH
MS-DOS和16位WINDOWS可读写(4092KB)
00001000H

00000FFFH
捕捉NULL指针用不可读写(4KB)
00000000H



下面是WIN NT地址进程空间
FFFFFFFFH
操作系统使用 不可读写(2GB)
80000000H

7FFFFFFFH
用于防止跨用户/系统边界传送数据 不可读写 (64KB)
7FFF0000H

7FFEFFFFH
进程私有空间 (128KB-2GB)
00010000H

0000FFFFH
用于捕捉NULL指针 不可读写(64KB)
00000000H
romaut 2002-03-03
  • 打赏
  • 举报
回复
同志们,帮忙啊

1,649

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 非技术类
社区管理员
  • 非技术类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧