📄 csdn_文档中心_microsoft windows 2000 应用程序兼容性.htm
字号:
<P>而且,系统将不再显示 Windows 环境中那些几乎毫无用处的文件,其中绝大多数是基于 MS-DOS(R)
的旧文件以及类似文件。大多数情况下,这对普通用户没有影响;他们所看到的将是一个更简洁的系统。</P>
<P>对于 32
位应用程序来说,这其实不是兼容性问题。应用程序能够在常规的“打开文件”对话框中看到文件,并顺利地打开文件,命令行也依然有效。如果您采用能够查看超级隐藏文件的
Dir /ASH 命令,将会看到所有文件。</P>
<P>唯一存在兼容性问题的是 16 位应用程序,这类程序会碰到一点麻烦。这主要是由调用 MS-DOS 的 INT21
引起。如果您要求系统查找隐藏文件,MS-DOS 的 INT21 只会查找出隐藏的服务文件。 </P>
<P>部分被隐藏的文件:
<UL type=disc>
<LI>MS-DOS 系统文件,如 io.dos<BR><BR>
<LI>Office 快速查找文件 </LI></UL>
<H3>NetBIOS</H3>
<P>NetBIOS 一直是 Windows NT 的一部分。从 Windows 2000
开始,这一情况有所变化。它不是默认配置,用户可能对系统进行设置,使之不加载并不出现 NetBIOS。如果您的应用程序在没有
NetBIOS 的系统中调用使用 NetBIOS 的
API,则这些应用程序将无法继续正常工作,同时将返回错误。例如,如果采用诸如 <B>NetServerEnum</B>
的调用,而运行的系统中没有 NetBIOS,则将返回错误信息。您必须检查所有使用 NetBIOS
调用的地方,确定它们是否发生在没有 NetBIOS 的机器中,并进行正确处理。或者,可以将其替换成非 NetBIOS
调用。请确保您的用户知道您的系统始终需要 NetBIOS,并在安装程序或版本发布说明中明确告知。</P>
<H3>需要新的网络 .inf 文件</H3>
<P>如果您拥有任一网络设备(如网络驱动程序、传输驱动程序以及某些网络文件打印提供程序等),则您需要确认系统中存在该设备所需的新的网络
.inf 文件,以便支持 Windows 2000 即插即用。无论使用网络设备的系统是从头开始安装,还是由 Windows
NT 4.0 升级到 Windows 2000,都要用到这些新文件。因这一格式与 Windows 98
兼容,所以您以前可能用过。无论如何,您都需要立刻将这些文件提供给用户,以便在系统升级到 Windows 2000
后,网络设备仍然能够得到支持。 </P>
<H3>物理驱动器号</H3>
<P>如果您的应用程序需要以低级方式访问硬盘驱动器和卷(如病毒扫描程序),则将需要查找物理驱动器号,这时必须更改查找该号码的方式。过去,您可能使用符号链,该符号链返回的内容类似于:</P>
<P class=indent>\Device\HarddiskX\PartitionY</P>
<P>在其中的某个地方您会找到“Harddisk”以及后面的 X,并看出它是硬盘 2 或硬盘
3。而现在,符号链返回的是:</P>
<P class=indent>\Device\HarddiskVolumeZ</P>
<P>物理驱动器号将不再出现在这一符号链的任何地方。您需要用一对可用的 IOCTL 来代替。第一个是: </P><PRE><CODE>IOCTL_STORAGE_GET_DEVICE_NUMBER
</CODE></PRE>
<P>该 IOCTL 只对单个物理驱动器号有效。例如,如果驱动器是 C 驱动器,甚至在一个驱动器上有多个分区,该 IOCTL
都将生效。但针对多卷集合,则需要使用: </P><PRE><CODE>IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS
</CODE></PRE>
<P>该 IOCTL 对于 Windows NT 4.0
同样生效;从符号链中发现物理驱动器号总是有点危险的事情:在可能是多驱动器集的信息中,它们会只告诉您第一个驱动器。 </P>
<H3>访问磁带驱动器</H3>
<P>如果您的应用程序要用到磁带驱动器,则您必须更改访问该磁带驱动器的方式。新的“层次结构存储管理”(Hierarchical
Storage Management) 应用了称之为“可移动存储管理器”(Removable Storage
Manager)
的工具,其主要操作过程如下:进入服务器并确认某个文件已很长时间未被访问。它会说:“让我们将它转到磁带上,如果某人需要该文件,我们可以将其找回,并让它脱离磁带”。用户将等待稍微长的时间,但可以获取该文件。这样,您可以使用一个似乎空间大得多的小驱动器。
</P>
<P>因为“可移动存储管理器”正在服务器上频繁运行,而您的应用程序也在试图访问磁带驱动器,所以,应用程序会发现磁带驱动器总是处于忙碌状态,应用程序将无法控制磁带驱动器。在此讨论如何处理这一问题的篇幅不足。建议您在
Microsoft.com 上访问“Windows NT 5.0
存储应用程序开发过程中应考虑的问题”(Development Considerations for Storage
Applications in Windows NT
5.0)。在该文中,您可以大致了解如何处理新的磁带驱动器。在实施这种处理之前,请花点时间浏览 SDK 中的
“可移动存储管理器程序员参考”(Removable Storage Manager Programmer's
Reference),以便学习如何编写能与可移动存储管理器共享磁带驱动器的应用程序。 </P>
<H3>挂接显示驱动程序</H3>
<P>如果您的应用程序试图“楔入”显示设备中(例如,您编写了一个显示驱动程序,它会先获得所有调用,然后再将它们移交给原始显示驱动程序),则需要改变操作方式。您已经见过进行这种操作的应用程序(远程控制应用程序即是一个例子),在这些例子中应用程序会取得显示驱动程序命令,并通过线路发送一个调用,然后在本地执行一个调用。如果要在
Windows 2000 中进行这种操作,则必须使用新的"显示驱动程序管理层"(Display Driver
Management Level, DDML)
将该输出镜像到远程设备。这将启动多个显示驱动程序,而这正是远程控制应用程序正在进行的操作。这部分文档资料包含在
Windows 2000 Beta 3 版的 DDK 中。 </P>
<H3>写保护的内核模式</H3>
<P>微软还采取了另一项措施增强平台的可靠性:任何运行于内核模式的程序都将在内存中实际拥有写保护区。如果您的设备驱动程序中使用了某些代码段或字符串段落,并且您在已列为只读区域的地方写入了某些临时内容(如注释等),这在
Windows 2000 中将是行不通的。我们不允许内核模式中的任何内容妨碍该处应该具备的保护功能,因为这会导致系统崩溃。
</P>
<P>我们发现许多设备驱动程序没有遵守 Windows 2000
的这一规则。通过检查设备驱动程序,系统将判断如果设备驱动程序的设计目标是用于 Windows NT 4.0 而不是
Windows
2000,<BR></P></SPAN></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_文档中心_Microsoft Windows 2000 应用程序兼容性.files/readnum.htm"></SCRIPT>
</TD></TR></TBODY></TABLE>
<TABLE align=center bgColor=#666666 border=0 cellPadding=2 cellSpacing=1
width=770>
<TBODY>
<TR>
<TD bgColor=#cccccc colSpan=3><SPAN style="COLOR: #cccccc"><IMG
height=16 hspace=1
src="CSDN_文档中心_Microsoft Windows 2000 应用程序兼容性.files/ico_pencil.gif"
width=16> </SPAN> netflycn <I>(2001-2-18
13:18:41)</I> </TD></TR>
<TR>
<TD bgColor=#ffffff colSpan=3
width=532><BR>谢谢你在WIN程序兼容性测试问题上的工作,有兴趣加盟我们的数字广播技术联盟么?请联系chinaking@yeah.net
<BR></TD></TR></TBODY></TABLE>
<TABLE align=center bgColor=#666666 border=0 cellPadding=2 cellSpacing=1
width=770>
<TBODY>
<TR>
<TD bgColor=#cccccc colSpan=3><SPAN style="COLOR: #cccccc"><IMG
height=16 hspace=1
src="CSDN_文档中心_Microsoft Windows 2000 应用程序兼容性.files/ico_pencil.gif"
width=16> </SPAN> netflycn <I>(2001-2-18
13:15:23)</I> </TD></TR>
<TR>
<TD bgColor=#ffffff colSpan=3 width=532><BR>好好好,请多在些问题上下工夫!!!
<BR></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>
<SCRIPT language=javascript>
<!--
function isEmpty(s)
{
return ((s == null) || (s.length == 0))
}
function fubmitok()
{
if (isEmpty(document.add_critique.Critique_Content.value))
{
alert('评论不能为空!!!!') ;
return false;
}
document.add_critique.submit();
}
//-->
</SCRIPT>
<DIV align=center>
<TABLE border=0 width=770>
<TBODY>
<TR>
<TD>
<FORM action=Critique_Sql.asp method=post name=add_critique><INPUT
name=Critique_State type=hidden value=add> 评论人:xyj0323
评论:<BR> <TEXTAREA cols=104 name=Critique_Content rows=8></TEXTAREA><BR> <INPUT name=ubmit onclick=javascript:fubmitok(); type=button value=发表评论>
<INPUT name=Topic_id type=hidden value=1867> <INPUT name=From
type=hidden value=/Develop/Build_Article.asp?id=1867>
</FORM></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_文档中心_Microsoft Windows 2000 应用程序兼容性.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></DIV><!--内容结束//--><!--结束//--></TR></TBODY></DIV></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -