WOW64机制

Windows64位计算环境

WOW64机制

什么是WOW64机制

WOW64(Windows on Windows 64)机制就是一种在64位OS中支持运行32位应用程序的机制

起源:

微软认为64位OS的核心就是要向下兼容32位OS,所以创造了一个WOW64机制,使得32位应用程序能够很好的移植在64位OS中

WOW64机制的原理

在Windows 64位OS中,

64位应用程序会加载kernel32.dll(64位)和ntdll.dll(64位),

32位应用程序会加载kernel32.dll(32位)和ntdll.dll(32位)

WOW64会将ntdll.dll(32位)的请求(API调用)重定位到ntdll.dll(64位),

就是说,64位OS会为32位应用程序提供一个32位Windows的系统环境,让其能够运行,然后在中途用WOW64将其变为64位环境

文件夹结构

64位OS中系统文件夹其实是System32,里面存放的是64位文件,SysWOW64里面存放的是32位文件

系统文件夹System32和SysWOW64

当你在64位应用程序中用GetSystemDirectory()API查看系统文件夹时,会返回System32

在32位应用程序中调用GetSystemDirectory()API查看系统文件夹时,也会返回System32

这是为什么呢?不是说System32文件夹放的是64位文件吗?32位应用程序返回的怎么是64位文件呢?

这里32位应用程序调用GetSystemDirectory()API,返回的实际内容的确是SysWOW64文件夹的内容,但是通过WOW64机制,64位OS将返回的文件夹名字又重定向为System32

程序文件夹Program Files和Program Files(x86)

调用SHGetSpecialFolderPath()API可以查看程序文件夹的路径

Program Files和Program Files(x86)跟System32和SysWOW64不一样,

在64位OS中,32位应用程序调用GetSystemDirectory()API,返回的和64位应用程序一样,都是System32,

在64位OS中,32位应用程序调用SHGetSpecialFolderPath()API时,返回的并不是Program
Files,WOW64会在中间将请求截获,然后返回Program Files(x86)文件夹

64位与32位注册表

64位OS中存在64位注册表项和32位注册表项,共存

32位的进程访问HKLM\SOFTWARE下的键时,WOW64会将其重定位到HKLM\SOFTWARE\Wow6432Node下的键

在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值