Windows桌面应用程序(1-3-3-3rd) 注册表重定向器

注册表重定向器通过在WOW64上提供注册表某些部分的单独逻辑视图来隔离32位和64位应用程序。注册表重定向器拦截对其各自逻辑注册表视图的32位和64位注册表调用,并将它们映射到相应的物理注册表位置。重定向过程对应用程序是透明的。因此,32位应用程序可以访问注册表数据,就像它在32位Windows上运行一样,即使数据存储在64位Windows上的其他位置也是如此。

ARM上的Windows 10:除了x86应用程序的32位逻辑视图外,ARM上的Windows 10还包含32位ARM应用程序的单独逻辑视图。

重定向注册表路径下的密钥子集是共享的。不会重定向对共享密钥的32位注册表调用。而是将密钥的一个物理副本映射到注册表的每个逻辑视图中。有关重定向密钥和共享密钥的列表,请参阅受WOW64影响的注册表项

Windows Server 2008,Windows Vista,Windows Server 2003和Windows XP:要通过COM和其他机制启用应用程序互操作性,还会反映重定向的注册表项的子集。注册表映射过程在两个注册表视图之间复制注册表项和值以使它们保持同步。从Windows 7和Windows Server 2008 R2开始删除了注册表映射。有关更多信息,请参阅注册表映射

以下方案说明了这些逻辑视图的用法:

  • 32位x86应用程序检查是否存在以下注册表项:“HKEY_LOCAL_MACHINE \ Software \ Hello”。如果密钥不存在,应用程序将使用默认值“Hello 32-bit x86 world”创建它;否则,它会读取并显示该值。
  • 修改相同的应用程序以编写“Hello 64-bit world”而不是“Hello 32-bit x86 world”并重新编译为64位x64或ARM64应用程序。
  • ARM上的Windows 10:修改了相同的应用程序以编写“Hello 32位ARM world”并重新编译为32位ARM应用程序。
  • 当32位x86应用程序在64位Windows上运行时,它显示“Hello 32位x86 world”。运行64位应用程序时,它显示“Hello 64位世界”。 ARM上的Windows 10:当32位ARM应用程序在64位ARM64 Windows上运行时,它会显示“Hello 32位ARM world”。所有应用程序使用相同的预定义句柄和相同的键名称调用相同的注册表函数;区别在于每个应用程序都在其注册表的逻辑视图上运行,并且每个视图都映射到注册表的单独物理位置,这使得字符串的所有版本保持不变。

重定向的密钥映射到Wow6432Node下的物理位置。例如,HKEY_LOCAL_MACHINE\Software被重定向到HKEY_LOCAL_MACHINE\Software\Wow6432Node。但是,重定向密钥的物理位置应视为系统保留。应用程序不应直接访问密钥的物理位置,因为此位置可能会更改。有关更多信息,请参阅访问备用注册表视图

ARM上的Windows 10:重定向的32位ARM密钥映射到WowAA32Node下的物理位置。

为了帮助那些编写包含的%ProgramFiles%或%commonprogramfiles%到注册表REG_SZREG_EXPAND_SZ数据的32位应用程序,WOW64截获这些写入操作,并为“%ProgramFiles(x86)%”和“%commonprogramfiles(x86)%”替换它们。例如,如果Program Files目录位于C驱动器上,则“%ProgramFiles(x86)%”将扩展为“C:\Program Files(x86)”。只有满足以下条件时才会进行更换:

  • 该字符串必须以%ProgramFiles%或%commonprogramfiles%开头。如果字符串以空格或%以外的任何字符开头,则不会替换它。
  • %ProgramFiles%或%commonprogramfiles%的情况必须完全如上所示,因为字符串比较区分大小写。例如,如果字符串以%CommonProgramFiles%而不是%commonprogramfiles%开头,则不会替换它。
  • 该字符串不能超过MAX_PATH * 2 + 15个字符。如果超过此长度,则不会更换。
  • 无法使用KEY_WOW64_64KEY打开密钥。此标志指定应在64位注册表视图上执行对操作的操作,因此不会替换它。有关更多信息,请参阅访问备用注册表视图。

Windows Server 2008,Windows Vista,Windows Server 2003和Windows XP: KEY_WOW_64_64KEY标志不影响是否替换密钥。此标志会影响从Windows 7和Windows Server 2008 R2开始的替换。

此外,包含system32的REG_SZ或REG_EXPAND_SZ键将替换为syswow64。该字符串必须以指向或位于%windir%\system32下的路径开头。字符串比较不区分大小写。在匹配路径之前展开环境变量,因此将替换以下所有路径:%windir%\system32,%SystemRoot%\system32和C:\windows\system32。此修补程序仅应用于Windows 7之前反映的键。

有关更多信息,请参阅以下主题:


原文链接:Registry Redirector

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
定向系统各临时文件夹到另外盘符 首先要在“开始”——“运行”内输入“regedit”打开注册表编辑,然后要在“文件”下拉菜单中的“导出”功能备份好注册表,以防万一,接着在左侧窗口依次打开: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders 在右侧窗口里,你看到的“名称”就代表那些特殊的文件夹,“数据”就是它们所对应的默认存储路径。修改默认的路径就可以让你的桌面文件夹移动了,下面是所有的. 下面介绍一下各个“名称”所代表的文件夹 名称 含义 默认路径 AppData 应用程序数据目录 C:\Documents and Settings\User name\Application Data Cookies Cookies路径 C:\Documents and Settings\User name\Cookies Desktop 桌面路径 C:\Documents and Settings\User name\桌面 Favorites 收藏夹 C:\Documents and Settings\User name\Favorites NetHood NetHood路径 C:\Documents and Settings\User name\NetHood Personal 我的文档 C:\Documents and Settings\User name\My Documents PrintHood 打印 C:\Documents and Settings\User name\PrintHood Recent 文档项路径 C:\Documents and Settings\User name\Recent SendTo SendTo路径 C:\Documents and Settings\User name\SendTo Start Menu 开始菜单路径 C:\Documents and Settings\User name\「开始」菜单 Templates 新建文件目录 C:\Documents and Settings\User name\Templates Programs 程序菜单路径 C:\Documents and Settings\User name\「开始」菜单\程序 Startup 启动路径 C:\Documents and Settings\User name\「开始」菜单\程序\启动 History 网页历史记录 C:\Documents and Settings\ User name \Local Settings\History My Pictures 图片收藏 C:\Documents and Settings\User name\My Documents\My Pictures My Music 我的音乐 C:\Documents and Settings\User name\My Documents\My Music My Video 我的视频 C:\Documents and Settings\User name\My Documents\My Videos Cache Internet临时文件夹 C:\ Documents and Settings\User name \Temporary Internet Files 这些文件夹称为Shell文件夹 其中“User name”为当前用户的名称 了解了对应的文件夹,就可以根据自己的需要去更改对应的路径了。(千万不要在这儿改啊,那样可就瞎忙乎了,系统起后它会恢复成原来的路径) 在同一层中你可以看到一个“User Shell Folders”的子键,即在HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ User Shell Folders 这里包括了用户定制的所有Shell文件夹的值项。只要通过修改“数据”,就可以改变它们的存储路径。双击需要修改的名称,在弹出的“编辑字符串”的“数值数据”里填上你要更改的完整路径,按下“确定”就完成了。如果没有你需要的,可以在右边窗口单击鼠标右键,选择“新建”菜单中的“字符串值”命令,对应上表,添加一个用于Shell文件夹的字符串值。 在上面的文件夹中,并没有outlook的通讯簿和邮件存放路径,它们分别在 通讯簿路径: HKEY_CURRENT_USER\Software\Microsoft\WAB\WAB4\Wab File Name主键下,将

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值