运行 32 位程序

WOW64 子系统使 32 位程序能够在基于 x64 版本的 Windows Server 2003 和 Windows XP 专业 x64 版的运行而不用修改。WOW64 子系统是通过在基于 x64 版本的 Windows Server 2003 和 Windows XP 专业 x64 版的创建 32 位环境。WOW64 子系统有关的详细信息,请参阅 Microsoft 平台 SDK 文档的 64 位 Windows 部分中的"运行 32-位应用程序"主题。若要查看此文档,请访问下面的 Microsoft 网站:

http://msdn2.microsoft.com/en-us/library/aa384249.aspx

() http://msdn2.microsoft.com/en-us/library/aa384249.aspx

程序性能方面的考虑

WOW64 子系统创建基于 x64 版本的 Windows Server 2003 和 Windows XP 专业 x64 版的 32 位环境。某些 32 位程序可能会较慢运行这些操作系统的系统上而不愿在 32 位版本的 Windows Server 2003 和 Windows XP。例如,32 位程序可能运行得更慢 Windows XP 专业 x64 版上比它像在 Microsoft Windows XP 专业版上。或者,某些 32 位程序需要大量内存可能会表现出更高的基于 x64 版本的 Windows Server 2003 和 Windows XP 专业 x64 版的性能。此性能提高的原因是基于 x64 版本的 Windows Server 2003 和 Windows XP 专业 x64 版的支持更多的物理内存比 32 位版本的 Windows Server 2003 和 Windows XP 专业版。

有关 64 位和 32 位的 Windows 版本之间的内存管理之间的区别的详细信息,请参阅 Microsoft 平台 SDK 文档中的内存管理有关本节中的"虚拟地址空间"主题。若要查看此文档,请访问下面的 Microsoft 网站:

http://msdn2.microsoft.com/en-us/library/aa366912.aspx

() http://msdn2.microsoft.com/en-us/library/aa366912.aspx

WOW64 子系统的限制

WOW64 子系统不支持下列程序:

  • 对于 16 位操作系统进行编译的程序
  • 被编译为 32 位操作系统的内核模式程序

16 位程序

不支持基于 x64 版本的 Windows Server 2003 和 Windows XP 专业 x64 版的 16 位程序或 16 位程序组件。软件模拟所需的基于 x64 的版本或 Windows XP 专业 x64 版的 Windows Server 2003 上运行 16 位程序会大大减少这些程序的性能。

将一个 16 位的安装经常用于安装和配置的 32 位程序。此外,某些 32 位程序需要 16 位组件,才能正确运行。虽然在安装后需要 16 位组件的 32 位程序可能会正确运行,您不能使用 16 位安装程序安装的 32 位程序。需要 16 位组件的程序不能运行在基于 x64 版本的 Windows Server 2003 和 Windows XP 专业 x64 版。

如果尝试运行 16 位文件或组件的 32 位程序需要 16 位组件,将 32 位程序将在系统日志中记录一条错误消息。然后,操作系统将让 32 位程序处理错误。

要确定是否在程序需要一个 16 位组件,请安装并运行该程序。如果该程序生成一条错误消息,该程序的制造商联系与基于 x64 版本的 Windows Server 2003 和 Windows XP 专业 x64 版的兼容的更新。

32 位驱动程序

基于 x64 版本的 Windows Server 2003 和 Windows XP 专业 x64 版不支持 32 位驱动程序。必须专门为基于 x64 版本的 Windows Server 2003 和 Windows XP 专业 x64 版的编译所有硬件设备驱动程序和程序的驱动程序。

如果尝试在计算机上安装 32 位驱动程序的 32 位程序正在运行基于 x64 版本的 Windows Server 2003 SP1 或 Windows XP 专业 x64 版的驱动程序安装失败。在这种情况,或 Windows Server 2003 SP1 的 Windows XP 专业 x64 版的基于 x64 版本的 32 位程序报告的错误。

如果尝试注册为正在运行基于 x64 版本或 Windows XP 专业 x64 版的 Windows Server 2003 的计算机上自动启动 32 位驱动程序的 32 位程序,认识到引导加载程序在计算机上不受支持的 32 位驱动程序。基于 x64 版本的 Windows Server 2003 或 Windows XP 专业 x64 版的不启动 32 位驱动程序,但不启动其他已注册的驱动程序。

要确定是否在程序需要 32 位驱动程序,请安装并运行该程序。如果该程序生成一条错误消息,该程序的制造商联系与基于 x64 版本的 Windows Server 2003 和 Windows XP 专业 x64 版的兼容的更新。

其他注意事项

注册表和文件重定向

WOW64 子系统将从 64 位二进制文件的 32 位二进制文件隔离通过将注册表调用和某些文件系统调用重定向。WOW64 子系统将隔离的二进制文件,以防止意外地从 64 位二进制文件访问数据的 32 位二进制文件。例如,从 %systemroot%\System32 文件夹运行.dll 文件的 32 位二进制文件可能会无意中尝试访问不兼容的 32 位二进制文件的 64 位的.dll 文件。要防止这样,WOW64 子系统将重定向到 %systemroot%\SysWOW64 文件夹从 %systemroot%\System32 文件夹的访问。这种重定向可防止兼容性错误,因为它要求要被专门用于使用 32 位程序的.dll 文件。

有关文件系统和注册表重定向的详细信息,请参阅 Microsoft 平台 SDK 文档的 64 位 Windows 部分中的"运行 32-位应用程序"主题。若要查看此文档,请访问下面的 Microsoft 网站:

http://msdn2.microsoft.com/en-us/library/aa384249.aspx

() http://msdn2.microsoft.com/en-us/library/aa384249.aspx

WOW64 子系统将 32 位二进制调用重定向而不需要更改对 32 位二进制文件。但是,当您执行某些任务时可以看到此重定向的证据。例如,如果在 64 位命令提示符下键入命令行脚本,在命令提示符下可能不能访问 32 位程序文件文件夹中的程序。WOW64 子系统将重定向并将 32 位程序安装程序文件 (x86) 文件夹中。若要访问正确的文件夹中,则必须更改该命令行脚本。另外,也必须在 32 位命令提示符下键入命令行脚本。32 位命令提示符下自动重定向到正确的 32 位目录的文件系统调用。

若要启动 32 位命令提示符处,执行以下步骤:

  • 单击开始,单击运行,键入%windir%\SysWoW64\cmd.exe,然后单击确定.

在64位操作系统上运行32位的程序相关推荐

  1. 64位系统上运行32位程序的内存限制

    64位系统上运行32位程序能否申请到8G内存? 收藏到手机    转发   评论 2010-01-20 10:56 申请不到,因为64为系统在运行32位程序的时候只是为了向下兼容而已,对于32位程序来 ...

  2. win32程序时如何在64位操作系统上运行的

    1,利用下面的代码编译成32位的程序,然后在64位操作系统中放入OD中进行调试. #include<Windows.h> #include<stdio.h> void main ...

  3. Windows2008环境64位操作系统如何安装32位BDE

    1.环境 操作系统:Windows2008 数据库:Oracle 11g Release 2 (11.2) for Microsoft Windows x64 (64-Bit) Delphi:Borl ...

  4. 64位Ubuntu系统如何运行32位软件

    这个问题是我在Ubuntu16.04下安装教程编译器时遇到的,我安装的是arm-linux-gcc-4.5.1-v6-vfp-20101103.tgz交叉编译器. 1,首先将arm-linux-gcc ...

  5. Linux下的32位C程序,linux系统c语言生成.so文件,生成64位可执行文件,在64位系统中运行32位的可执行文件...

    1.linux 系统c语言生成.o文件,---->gcc -m64 -c -fPIC test.c -o test.o 2.linux 系统c语言生成.so文件,----->gcc -sh ...

  6. 如何让64位的windows上的IIS可以运行32位的程序

    在最近的工作中,引用了一个外部的组件,然而由于那个外部组件只能在32位环境中运行,当我们的程序布署到64位的环境中时,就不能工作了.由于那个组件是在服务中引用的,我们的服务是宿主在IIS中的,而这时的 ...

  7. 64位系统下一个32位的程序究竟可以申请到多少内存?

    64位系统下一个32位的程序究竟可以申请到多少内存? cpu的位是指一次性可处理的数据量是多少,1字节=8位,32位处理器可以一次性处理4个字节的数据量,依次类推.32位操作系统针对的32位的CPU设 ...

  8. 在64位操作系统上使用FlashDevelop的Debug功能

    来自:http://zengrong.net/post/1692.htm 本站文章除注明转载外,均为本站原创或者翻译. 本站文章欢迎各种形式的转载,但请18岁以上的转载者注明文章出处,尊重我的劳动,也 ...

  9. VB 6.0 如何在64位操作系统下运行!

    XP系统已经被停止维护很长一段时间了,但是还是有不少朋友可能还没有升级到WIN7或更高的操作系统.对于使用VB6.0作为开发工具的朋友来说,是否升级到64位操作系统,是个有点纠结的问题. 我们无外乎几 ...

最新文章

  1. Debain/ArchLinux/Gentoo 等将合并为超级Linux
  2. js deep clone 深克隆
  3. linux清屏命令clear和reset
  4. 【转载】register、volatile、restrict 三关键字的用法
  5. python机械编程_机器学习编程作业3——多类分类(Python版)
  6. python从2.6升到2.7后 桌面输入法图标不见
  7. 如何处理Java注释
  8. void函数调用时显示不允许使用不完整的_4位数码管显示模块驱动
  9. mysql not in 转化_解析MySQL隐式转换问题
  10. 我的世界服务器怎么注册密码1.9,我的世界1.9.x /1.10服务器BEST CRAFT(最佳工艺服务器)...
  11. Sharding-Proxy分库配置_Sharding-Sphere,Sharding-JDBC分布式_分库分表工作笔记020
  12. java中限制多人登录的_Spring Boot + Spring Security 防止用户在多处同时登录(一个用户同时只能登录一次)及源码分析...
  13. 【渝粤教育】国家开放大学2018年春季 7392-21FMatlab语言及其应用 参考试题
  14. Vue学习之路---No.1(分享心得,欢迎批评指正)
  15. BOMRemover v2.0 去除代码中的UTF-8 BOM
  16. js日期格式转换Wed Mar 22 13:38:37 CST 2017 转换 为yyyy-mm-dd
  17. 51Nod【1419】-最小公倍数挑战
  18. 清北师哥推荐的CV/NLP 算法工程师培养计划,强无敌!
  19. 贝茜的报复(dfs + 位运算)
  20. idea查看类层次结构图

热门文章

  1. [Vue][:class]Vue动态绑定class错误分析
  2. 【MySQL内核系列】Centos7环境MySQL5.7源码编译教程
  3. mysql 增加字段位置靠前_mysql 字段指定值靠前排序方法,多字段排序排序方法
  4. Java基础知识总结(刷力扣必备)
  5. linux 命令创建目录,Linux mkdir命令:创建目录
  6. TI KeyStone架构支持L2及传输处理
  7. [数据结构] python 栈解决迷宫问题
  8. php底部导航栏,关于微信小程序底部导航栏目的开发
  9. 软路由OpenWrt dnsmasq解析内网上游DNS
  10. 即时聊天社交软件 (一)