📄 csdn_文档中心_[讨论]关于vxd中的地址.htm
字号:
<TD bgColor=#f3f9fc height=23 width=10></TD>
<TD bgColor=#f3f9fc>
<MARQUEE onmouseout=this.start() onmouseover=this.stop() scrollAmount=5
scrollDelay=80>
<SCRIPT src="CSDN_文档中心_[讨论]关于VXD中的地址.files/marquee.htm"></SCRIPT>
</MARQUEE></TD>
<TD align=right bgColor=#f3f9fc width=101>
<SCRIPT>document.write("<img src=http://count.csdn.net/count/pageview1.asp?columnid=4&itemid=11 border=0 width=0 height=0>");</SCRIPT>
<B>
<SCRIPT language=JavaScript>
<!--
document.ns = navigator.appName == "Netscape"
tmpDate = new Date();
date = tmpDate.getDate();
month= tmpDate.getMonth() + 1 ;
if(document.ns)
{
year1=tmpDate.getYear()
year= year1.toString().substr(1,2);
}
else
year= tmpDate.getYear();
document.write(year);
document.write(".");
document.write(month);
document.write(".");
document.write(date);
// -->
</SCRIPT>
</B> </TD></TR>
<TR bgColor=#999999>
<TD colSpan=3 height=1></TD></TR></TBODY></TABLE>
<TABLE border=0 width=770>
<TBODY>
<TR>
<TD align=middle bgColor=#fafafa class=td1 vAlign=top width=150><BR>
<SCRIPT src="CSDN_文档中心_[讨论]关于VXD中的地址.files/microsoft.js"></SCRIPT>
</TD>
<TD align=middle width=620>
<TABLE bgColor=#eeeeee border=0 cellPadding=0 cellSpacing=0 width=600>
<TBODY>
<TR bgColor=#ffffff>
<TD align=middle height=10 width=50></TD>
<TD align=right><A href="http://www.csdn.net/">CSDN</A> - <A
href="http://www.csdn.net/develop/">文档中心</A> - <FONT
color=#003399>Visual C++</FONT> </TD></TR>
<TR>
<TD align=middle height=5></TD>
<TD align=middle width=500></TD></TR>
<TR>
<TD align=middle bgColor=#003399 height=10><FONT
color=#ffffff>标题</FONT></TD>
<TD><B> [讨论]关于VXD中的地址</B> ghj1976(转贴)
</TD></TR>
<TR>
<TD align=middle height=5></TD>
<TD align=middle width=500></TD></TR>
<TR>
<TD align=middle bgColor=#003399><FONT color=#ffffff>关键字</FONT></TD>
<TD width=500> [讨论]关于VXD中的地址</TD></TR>
<TR>
<TD align=middle height=5></TD>
<TD align=middle width=500></TD></TR>
<TR>
<TD align=middle bgColor=#003399 height=10><FONT
color=#ffffff>出处</FONT></TD>
<TD height=10> <A
href="http://my.szptt.net.cn/vcdynasty/tips/vxd/3.htm">http://my.szptt.net.cn/vcdynasty/tips/vxd/3.htm</A></TD></TR>
<TR>
<TD align=middle height=10></TD>
<TD height=10></TD></TR></TBODY></TABLE><!--文章说明信息结束//-->
<TABLE border=0 width=600>
<TBODY>
<TR>
<TD align=left><BR>
<P align=center> </P>
<P
align=left>发信人: wwwwww (困困), 信区: Programming <BR>标 题: 关于VXD的问题 <BR>发信站: BBS 水木清华站 (Mon Feb 16 02:46:39 1998) <BR> <BR>VXD相对于所有的应用程序都是全局的, <BR>也就是说应用程序可以直接存取VXD中的 <BR>全局变量。这是经过证实的。 <BR>现在的疑问是: <BR> 1。所有的VXD都在同一线性地址空间里吗? <BR> 这个线性地址空间的长度最多是多少呢? <BR> 如果是4GB,那别的应用程序又怎么能看得见这些VXD呢? <BR> 如果看不见那是不可能实现前面所说的数据共享的。 <BR> 2。VXD也有数据段,代码段吧?因为在写VXD时就有这些概念, <BR> 这样可以利于维护代码段的只读特性。想问的是:这些数据段, <BR> 和代码段也是在同一线性地址空间里了? <BR> <BR> <BR> <BR>-- <BR>※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: 166.111.8.130] <BR>发信人: Cohen (Tommy), 信区: Programming <BR>标 题: Re: 关于VXD的问题 <BR>发信站: BBS 水木清华站 (Mon Feb 16 15:19:08 1998) <BR> <BR>【 在 wwwwww (困困) 的大作中提到: 】 <BR>∶<I> VXD相对于所有的应用程序都是全局的, </I><BR>∶<I> 也就是说应用程序可以直接存取VXD中的 </I><BR>∶<I> 全局变量。这是经过证实的。 </I><BR>∶<I> 现在的疑问是: </I><BR>∶<I> 1。所有的VXD都在同一线性地址空间里吗?nbsp;</I><BR> ^^^^^^^^^^^^^^^^^^^^ 好象是这样的,从微软提供的资料看 <BR> VXD占用了2G以上的系统空间,而应用程序 <BR> 空间在2G以下 ?nbsp;<BR>∶<I> 这个线性地址空间的长度最多是多少呢? </I><BR>∶<I> 如果是4GB,那别的应用程序又怎么能看得见这些VXD呢? </I><BR>∶<I> 如果看不见那是不可能实现前面所说的数据共享的。 </I><BR>∶<I> 2。VXD也有数据段,代码段吧?因为在写VXD时就有这些概念, </I><BR>∶<I> 这样可以利于维护代码段的只读特性。想问的是:这些数据段, </I><BR>∶<I> 和代码段也是在同一线性地址空间里了? </I><BR> <BR> <BR>-- <BR>※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: 166.111.74.242] <BR>发信人: suxm (笨笨), 信区: Programming <BR>标 题: Re: 关于VXD的问题 <BR>发信站: BBS 水木清华站 (Mon Feb 16 16:40:32 1998) <BR> <BR>【 在 wwwwww (困困) 的大作中提到: 】 <BR>∶<I> VXD相对于所有的应用程序都是全局的, </I><BR>∶<I> 也就是说应用程序可以直接存取VXD中的 </I><BR>∶<I> 全局变量。这是经过证实的。 </I><BR> ~~~~~~~~ <BR> 的确是这样的 <BR> <BR>∶<I> 现在的疑问是: </I><BR>∶<I> 1。所有的VXD都在同一线性地址空间里吗? </I><BR> ~~~~~~~~~~~~~~~~~ <BR> 是 <BR> <BR>∶<I> 这个线性地址空间的长度最多是多少呢? </I><BR> ~~~~~~~~~~~~~ <BR> 2GB <BR> <BR>∶<I> 如果是4GB,那别的应用程序又怎么能看得见这些VXD呢? </I><BR>∶<I> 如果看不见那是不可能实现前面所说的数据共享的。 </I><BR> <BR> 每一个应用程序的前2GB空间都有一份系统VXD的拷贝。 <BR> 这些拷贝映射为同一内存RAM地址。 <BR> 这样说来应用程序只能占用2GB-----4GB之间的地址空间了。 <BR> <BR> <BR>∶<I> 2。VXD也有数据段,代码段吧?因为在写VXD时就有这些概念, </I><BR> ~~~~~~~~~~~~~~~~ <BR> cs=ds=ss,在flat mode下请忘记段的概念,虽然CPU <BR> 仍在防护情况下使用着段 <BR> <BR>∶<I> 这样可以利于维护代码段的只读特性。想问的是:这些数据段, </I><BR>∶<I> 和代码段也是在同一线性地址空间里了? </I><BR> ~~~~~~~~~~~~~~~~~ <BR> 因为CS=DS=SS所以定在同一地址空间里 <BR>-- <BR>___________________ <BR>吃睡吃睡吃睡吃睡吃睡 <BR>___________________ <BR> <BR>※ 修改:·suxm 於 Feb 16 18:46:06 修改本文·[FROM: 166.111.8.153] <BR>※ 修改:·suxm 於 Feb 16 18:52:16 修改本文·[FROM: 166.111.8.153] <BR>※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: 166.111.146.241] <BR>发信人: wwwwww (困困), 信区: Programming <BR>标 题: Re: 关于VXD的问题 <BR>发信站: BBS 水木清华站 (Mon Feb 16 18:58:51 1998) <BR> <BR>多谢大侠指点。 <BR>小弟还有一事不明: <BR>如果32位应用程序与VXD在同一4GB的空间内, <BR>那应用程序自然可以利用指针直接存取VXD中的全局变量。 <BR>不明白的是:那VXD可以利用指针直接存取应用程序中的 <BR>全局变量吗?如果可以的话,那岂不乱套了?-----如果 <BR>同时运行两份应用程序的拷贝,那VXD存取的是哪个应用程序 <BR>中的全局变量呢? <BR> <BR> <BR>【 在 suxm (笨笨) 的大作中提到: 】 <BR>∶<I> ~~~~~~~~ </I><BR>∶<I> 的确是这样的 </I><BR>∶<I> ~~~~~~~~~~~~~~~~~ </I><BR>∶<I> 是 </I><BR>∶<I> ~~~~~~~~~~~~~ </I><BR>∶<I> 2GB </I><BR>∶<I> 每一个应用程序的前2GB空间都有一份系统VXD的拷贝。 </I><BR>∶<I> 这些拷贝映射为同一内存RAM地址。 </I><BR>∶<I> 这样说来应用程序只能占用2GB-----4GB之间的地址空间了。 </I><BR>∶<I> ~~~~~~~~~~~~~~~~ </I><BR> <BR> <BR>∶<I> cs=ds=ss,在flat mode下请忘记段的概念,虽然CPU </I><BR>∶<I> 仍在防护情况下使用着段 </I><BR>∶<I> ~~~~~~~~~~~~~~~~~ </I><BR>∶<I> 因为CS=DS=SS所以定在同一地址空间里 </I><BR> <BR> <BR>-- <BR>※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: 166.111.8.153] <BR>发信人: wwj (红尘一笑), 信区: Programming <BR>标 题: Re: 关于VXD的问题 <BR>发信站: BBS 水木清华站 (Tue Feb 17 08:49:02 1998) <BR> <BR>【 在 wwwwww (困困) 的大作中提到: 】 <BR> <BR> Win95的Win32部分并不是以段管理为主的,它所有的虚地址及其保护特性 <BR>基本上都是用页管理来完成. <BR> <BR>∶<I> 如果32位应用程序与VXD在同一4GB的空间内, </I><BR>∶<I> 那应用程序自然可以利用指针直接存取VXD中的全局变量。 </I><BR> <BR>VXD所在的虚地址在每个VM中都是一样的.但从操作系统的角度说,这片区域应 <BR>该不让应用程序可以读写到.Win95设计上出于效率和某些方面的考虑,这些区 <BR>域可以从应用程序级读到,甚至某些地方还可以被应用程序写. <BR> <BR>∶<I> 不明白的是:那VXD可以利用指针直接存取应用程序中的 </I><BR>∶<I> 全局变量吗?如果可以的话,那岂不乱套了?-----如果 </I><BR>∶<I> 同时运行两份应用程序的拷贝,那VXD存取的是哪个应用程序 </I><BR>∶<I> 中的全局变量呢? </I><BR> <BR>从VXD的角度看来,低2G的空间是应用程序相关的.也就是说,当CPU运行 <BR>到VXD的某段代码时,VXD所看到的低2G的空间是这个VM印象,并不能指定是哪 <BR>个应用的;究竟是哪个应用,VXD应该进行ProcessID的判断.在原则上,操作系统 <BR>是能读写应用的数据的. <BR> <BR>-- <BR>※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: 166.111.8.123] <BR>发信人: holly (holly), 信区: Programming <BR>标 题: Re: 关于VXD的问题 <BR>发信站: BBS 水木清华站 (Tue Feb 17 11:20:06 1998) <BR> <BR>【 在 wwj (红尘一笑) 的大作中提到: 】 <BR>∶<I> Win95的Win32部分并不是以段管理为主的,它所有的虚地址及其保护特性 </I><BR>∶<I> 基本上都是用页管理来完成. </I><BR>∶<I> VXD所在的虚地址在每个VM中都是一样的.但从操作系统的角度说,这片区域应 </I><BR>∶<I> 该不让应用程序可以读写到.Win95设计上出于效率和某些方面的考虑,这些区 </I><BR>∶<I> 域可以从应用程序级读到,甚至某些地方还可以被应用程序写. </I><BR> <BR>... No. Vxd Running on ring 0 and Apps running on Ring 3 <BR> <BR> <BR>∶<I> 从VXD的角度看来,低2G的空间是应用程序相关的.也就是说,当CPU运行 </I><BR>∶<I> 到VXD的某段代码时,VXD所看到的低2G的空间是这个VM印象,并不能指定是哪 </I><BR>∶<I> 个应用的;究竟是哪个应用,VXD应该进行ProcessID的判断.在原则上,操作系统 </I><BR>∶<I> 是能读写应用的数据的. </I><BR> <BR> <BR>-- <BR>※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: 202.120.26.243] <BR>发信人: suxm (笨笨), 信区: Programming <BR>标 题: Re: 关于VXD的问题 <BR>发信站: BBS 水木清华站 (Tue Feb 17 12:50:38 1998) <BR> <BR> <BR>Memory allocated in a VxD is globally,and can be shared with <BR>applications.Memory that an application allocates may be in a <BR>process specific region of the memory map.In this case,the VxD <BR>cannot access that memory unless the current memory context is <BR>that of the process. <BR> <BR> <BR> <BR>【 在 wwwwww (困困) 的大作中提到: 】 <BR>∶<I> 多谢大侠指点。 </I><BR>∶<I> 小弟还有一事不明: </I><BR>∶<I> 如果32位应用程序与VXD在同一4GB的空间内, </I><BR>∶<I> 那应用程序自然可以利用指针直接存取VXD中的全局变量。 </I><BR>∶<I> 不明白的是:那VXD可以利用指针直接存取应用程序中的 </I><BR>∶<I> 全局变量吗?如果可以的话,那岂不乱套了?-----如果 </I><BR>∶<I> 同时运行两份应用程序的拷贝,那VXD存取的是哪个应用程序 </I><BR>∶<I> 中的全局变量呢? </I><BR> <BR> <BR>-- <BR>___________________ <BR>吃睡吃睡吃睡吃睡吃睡 <BR>___________________ <BR> <BR>※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: 166.111.8.142] <BR>发信人: suxm (笨笨), 信区: Programming <BR>标 题: Re: 关于VXD的问题 <BR>发信站: BBS 水木清华站 (Tue Feb 17 12:51:55 1998) <BR> <BR>No.Can. <BR>See the examples of the win95 ddk. <BR> <BR> <BR> <BR>【 在 holly (holly) 的大作中提到: 】 <BR>∶<I> ... No. Vxd Running on ring 0 and Apps running on Ring 3 </I><BR> <BR> <BR>-- <BR>___________________ <BR>吃睡吃睡吃睡吃睡吃睡 <BR>___________________ <BR> <BR>※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: 166.111.8.142] <BR>发信人: Dreammy (这个杀手不太冷), 信区: Programming <BR>标 题: Re: 关于VXD的问题 <BR>发信站: BBS 水木清华站 (Tue Feb 24 09:01:42 1998) <BR> <BR>【 在 wwwwww (困困) 的大作中提到: 】 <BR>∶<I> 多谢大侠指点。 </I><BR>∶<I> 小弟还有一事不明: </I><BR>∶<I> 如果32位应用程序与VXD在同一4GB的空间内, </I><BR>∶<I> 那应用程序自然可以利用指针直接存取VXD中的全局变量。 </I><BR>∶<I> 不明白的是:那VXD可以利用指针直接存取应用程序中的 </I><BR>∶<I> 全局变量吗?如果可以的话,那岂不乱套了?-----如果 </I><BR>∶<I> 同时运行两份应用程序的拷贝,那VXD存取的是哪个应用程序 </I><BR>∶<I> 中的全局变量呢? </I><BR>实际上,在95和31中这个问题都可以提的,是个概念问题 <BR> <BR>在95中之所以叫做FLAT无非是因为所有WIN32应用的代码段 <BR>都是一样的,而在31下大家是同一个4GB的线性地址,所以 <BR>从这个角度讲,是一样的 <BR> 在31中,全局页表和局部页表是相同的,那么RING0所 <BR>在内存区域是采用设置叶面属性的方法解决的 <BR> 在95中 <BR>全局页表和局部页表是不同的,@而且各WIN32应用的 <BR>局部页表也不同 ,所以对不同进程,线性地址与物理 <BR>地址映射不同 , 大家在不同的线性空间里。 <BR> <BR>-- <BR>※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: 166.111.6.26] <BR></P><BR></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><BR>
<TABLE align=center bgColor=#006699 border=0 cellPadding=0 cellSpacing=0
width=770>
<TBODY>
<TR bgColor=#006699>
<TD align=middle bgColor=#006699 id=white><FONT
color=#ffffff>对该文的评论</FONT></TD>
<TD align=middle>
<SCRIPT src="CSDN_文档中心_[讨论]关于VXD中的地址.files/readnum.htm"></SCRIPT>
</TD></TR></TBODY></TABLE><BR>
<DIV align=center>
<TABLE align=center bgColor=#cccccc border=0 cellPadding=2 cellSpacing=1
width=770>
<TBODY>
<TR>
<TH bgColor=#006699 id=white><FONT
color=#ffffff>我要评论</FONT></TH></TR></TBODY></TABLE></DIV>
<DIV align=center>
<TABLE border=0 width=770>
<TBODY>
<TR>
<TD>你没有登陆,无法发表评论。 请先<A
href="http://www.csdn.net/member/login.asp?from=/Develop/read_article.asp?id=1525">登陆</A>
<A
href="http://www.csdn.net/expert/zc.asp">我要注册</A><BR></TD></TR></TBODY></TABLE></DIV><BR>
<HR noShade SIZE=1 width=770>
<TABLE border=0 cellPadding=0 cellSpacing=0 width=500>
<TBODY>
<TR align=middle>
<TD height=10 vAlign=bottom><A
href="http://www.csdn.net/intro/intro.asp?id=2">网站简介</A> - <A
href="http://www.csdn.net/intro/intro.asp?id=5">广告服务</A> - <A
href="http://www.csdn.net/map/map.shtm">网站地图</A> - <A
href="http://www.csdn.net/help/help.asp">帮助信息</A> - <A
href="http://www.csdn.net/intro/intro.asp?id=2">联系方式</A> - <A
href="http://www.csdn.net/english">English</A> </TD>
<TD align=middle rowSpan=3><A
href="http://www.hd315.gov.cn/beian/view.asp?bianhao=010202001032100010"><IMG
border=0 height=48 src="CSDN_文档中心_[讨论]关于VXD中的地址.files/biaoshi.gif"
width=40></A></TD></TR>
<TR align=middle>
<TD vAlign=top>百联美达美公司 版权所有 京ICP证020026号</TD></TR>
<TR align=middle>
<TD vAlign=top><FONT face=Verdana>Copyright © CSDN.net, Inc. All rights
reserved</FONT></TD></TR>
<TR>
<TD height=15></TD>
<TD></TD></TR></TBODY></TABLE></DIV>
<DIV></DIV><!--内容结束//--><!--结束//--></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -