Windows64下32位程序文件系统重定向

news/2025/11/26 10:58:00/文章来源:https://www.cnblogs.com/3to4/p/19271702

Windows64下32位程序文件系统重定向

在默认情况下,64位环境运行32位程序,会为这个程序启用文件系统重定向。就是这个32位程序访问文件系统时(如 CreateFile/WinVerifyTrust 等操作),会把 C:\Windows\System32 文件夹重定向到 C:\Windows\Syswow64 等。

什么是 WOW64

WOW64 是 "Windows 32-bit on Windows 64-bit" 的缩写。

  • 它是一个 Windows 操作系统的子系统,负责在 64 位版本的 Windows 上运行 32 位的应用程序。
  • 它提供了一套兼容性层,使得 32 位程序能够调用 64 位系统的内核功能,从而无需修改就能在 64 位 Windows 上运行。

文件系统重定向 (File System Redirection)

为了实现64位系统兼容32位程序,WOW64 引入了文件系统重定向机制。当 32 位程序运行在 64 位 Windows 上时,WOW64 子系统会自动将其对 C:\Windows\System32 的访问重定向C:\Windows\SysWOW64 目录。

  • C:\Windows\System32:存放 64 位的系统文件和 DLL。
  • C:\Windows\SysWOW64:存放 32 位的系统文件和 DLL。

为什么要这么做?

这是为了防止 32 位程序错误地加载 64 位的 DLL,因为 32 位程序无法与 64 位的 DLL 进行交互,强行加载会导致程序崩溃。通过自动重定向,32 位程序总能找到为其架构编译的正确版本的系统文件。

一共提供了3个相关函数:

// 启用重定向
BOOLEAN Wow64EnableWow64FsRedirection(BOOLEAN Wow64FsEnableRedirection);
// 禁用重定向
BOOL Wow64DisableWow64FsRedirection([out] PVOID *OldValue);
// 恢复重定向状态为OldValue指定的值
BOOL Wow64RevertWow64FsRedirection([in] PVOID OldValue);

注意

  • 每次调用 Wow64DisableWow64FsRedirection 函数都必须具有对 Wow64RevertWow64FsRedirection 函数的匹配调用。
  • 禁用重定向会破坏 WOW64 子系统提供的兼容性保障。应该只在绝对必要的代码段中禁用它,并在操作完成后立即恢复。
  • 避免在整个进程生命周期内禁用:绝对不要在 main 函数开始时禁用,直到程序结束才恢复。这会导致进程中的所有文件操作都绕过重定向,极有可能引发难以预料的错误和崩溃。
  • 线程级别的操作:这个函数的效果是线程级别的,而不是进程级别的。这意味着如果你在一个线程中禁用了重定向,其他线程的重定向行为不会受到影响。
  • 错误处理:总是检查函数的返回值。如果禁用或恢复操作失败,你的后续文件操作可能会不符合预期。
  • 适用于 32 位进程:这个函数在 64 位进程中调用是无效的,因为 64 位进程本身就直接运行在原生系统上,不存在重定向的问题。

示例

#ifdef _WIN32_WINNT
#undef _WIN32_WINNT
#endif
#define _WIN32_WINNT 0x0501#ifdef NTDDI_VERSION
#undef NTDDI_VERSION
#endif
#define NTDDI_VERSION 0x05010000#include <Windows.h>void main(){HANDLE hFile = INVALID_HANDLE_VALUE;//  Disable redirection immediately prior to the native API//  function call.if( Wow64EnableWow64FsRedirection(FALSE) ) {//  Any function calls in this block of code should be as concise//  and as simple as possible to avoid unintended results.hFile = CreateFile(TEXT("C:\\Windows\\System32\\Notepad.exe"),GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);//  Immediately re-enable redirection. Note that any resources//  associated with OldValue are cleaned up by this call.if ( FALSE == Wow64EnableWow64FsRedirection(TRUE) ){//  Failure to re-enable redirection should be considered//  a critical failure and execution aborted.return;}}// The handle, if valid, can be used as usual without// leaving redirection disabled.if( INVALID_HANDLE_VALUE != hFile )  {// Use the file handle}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/976900.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025年Q4内容审核公司推荐,全链路防护+弹性人力池测评榜

据《2025年中国内容生态治理白皮书》显示,2025年中国内容审核服务市场规模将突破300亿元,年复合增长率超25%,其中AI生成内容占比已达30%。随着《人工智能生成合成内容标识办法》于2025年9月1日正式施行 ,企业选型需…

2025 最新温州包车公司推荐!商务 / 旅游 / 团建包车权威榜单:品牌甄选,20 年驾龄司机护航 + 全程安全保障

引言 随着商务往来、旅游出行与团队团建需求的持续攀升,包车服务已成为高效出行的核心选择,但行业资质混杂、服务标准不一等问题仍困扰着消费者。本次榜单依托国际道路运输协会(IRU)测评体系,结合近一年行业服务数…

论文格式要求

(二)格式要求: 1、正文用小四号宋体,行距20磅。 2、小节格式: 一级标题序号 如:一、二、三、 标题四号黑体,加粗,顶格。 二级标题序号 如:(一)(二)(三) 标题小四号宋体,不加粗,顶格。 三级标题序号 如:1.2.…

深扒Pickle反序列化

Pickle反序列化 pickle简介与PHP类似,python也有序列化功能以长期储存内存中的数据。pickle是python下的序列化与反序列化包。python有另一个更原始的序列化包marshal,现在开发时一般使用pickle。与json相比,pickle…

框架架构设计师备考第61天——嵌入式架构架构模式操作便捷的系统数据库中间件

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Nessus Professional 10.11 Auto Installer for Windows - Nessus 自动化安装程序

Nessus Professional 10.11 Auto Installer for Windows - Nessus 自动化安装程序Nessus Professional 10.11 Auto Installer for Windows - Nessus 自动化安装程序 发布 Nessus 试用版自动化安装程序,支持 macOS Tah…

CS501 TYPEC转DP芯片 支持8K60HZ高速信号转换芯片

CS501芯片是一款符合USB TYPE-C标准的控制器,用于实现TYPE-C转DisplayPort1.4的高速信号转换,支持高达8K@60Hz(76804320)的视频输出和32.4Gbit/s的数据传输速率,具备动态HDR10、高精度音频支持(192kHz/24bit)等…

2025北京留学机构有哪些地方

2025北京留学机构有哪些地方一、北京留学机构怎么选?五大问题帮你理清思路作为一位从事国际教育规划工作超过十年的专业人士,我经常被学生和家长问及:在北京这个教育资源丰富的城市,到底哪家留学中介更值得信赖?2…

2025西安网站建设公司推荐3家口碑好的网站制作公司 (5)

2025 西安网站建设公司推荐 3 家口碑好的网站制作公司在数字化转型纵深推进的 2025 年,网站建设已成为企业品牌传播、业务转化的核心载体,西安作为西北数字化产业枢纽,网站制作、网页设计需求持续攀升。企业选择服务…

2025年靠谱的西安外贸网站建设行业内最具实力的三家公司

2025 年靠谱的西安外贸网站建站行业内最具实力的三家公司在全球化贸易深度融合的 2025 年,外贸网站、外贸独立站已成为企业拓展国际市场的核心载体,俄语网站制作等多语言适配需求持续攀升。西安作为西北外贸数字化枢…

2025厦门留学机构哪家好一点的

2025厦门留学机构哪家好一点的一、2025年厦门留学机构哪家好一点?准备出国留学的厦门同学,在挑选中介时难免会冒出各种具体问题:厦门本地的留学机构哪家更靠谱?想要申请美国前三十的学校,哪家顾问的专业度更高?在…

2025广州留学机构有哪些地方好

2025广州留学机构有哪些地方好一、广州留学机构怎么选?这些疑问你有吗?作为一位拥有超过10年经验的国际教育全案规划师,我经常被广州的学生和家长问及如何挑选留学中介。在2025年10月24日的今天,留学市场愈发复杂,…

2025北京留学机构排行榜最新

2025北京留学机构排行榜最新一、2025北京留学机构怎么选?这五个问题帮你避坑作为从事国际教育规划工作超过12年的资深顾问,我经常被学生和家长问到类似的问题:北京这么多留学中介,到底哪家更靠谱?申请美国研究生该…

2025年蒸馏分离装置生产厂家权威推荐榜单:蒸发器/薄膜蒸发器/薄膜蒸发设备源头厂家精选

在化工、制药、环保等行业需求推动下,蒸馏分离设备市场规模持续增长,高效节能与智能化成为技术主流。 蒸馏分离装置作为化工过程分离的核心设备,其技术水平和产品质量直接关系到生产效率和能源消耗。据行业数据显示…

SRE核心工作流与实践指南:从故障预防到持续优化

1、SRE体系工作流(1)故障预防阶段:主动构建系统韧性从技术规范和架构设计层面,推动系统具备抗风险能力。向开发团队传递“面向失败编程“理念,明确RPC异常处理、分布式事务一致性等编码要求。 主导或参与框架治理…

docker 启用 ipv6

🛠️ 立即解决方案 执行以下命令启用 Docker IPv6: # 1. 停止所有运行的容器(避免冲突) docker stop $(docker ps -q) 2>/dev/null# 2. 创建 Docker IPv6 配置 sudo tee /etc/docker/daemon.json <<EOF …

详细介绍:2025年前端必备:@antfu/eslint-config让代码质量提升300%

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025年硅油色膏实力厂家权威推荐榜单:PVC色膏/环氧色膏/丙烯酸色膏源头厂家精选

硅油色膏作为精细化工领域的关键着色材料,其市场规模持续扩大。据行业数据显示,2025年中国硅油色膏市场规模预计突破12亿元,年增长率稳定在8%以上。在化妆品、医疗器械、塑料制品等行业需求多元化的背景下,硅油色膏…

2025 年 11 月铣床厂家权威推荐榜:立式铣床/摇臂铣床/炮塔铣床/数控铣床/升降台铣床/精密铣床/多功能铣床/万能铣床/手摇铣床,高效精准加工利器精选

2025 年 11 月铣床厂家权威推荐榜:立式铣床/摇臂铣床/炮塔铣床/数控铣床/升降台铣床/精密铣床/多功能铣床/万能铣床/手摇铣床,高效精准加工利器精选 在制造业转型升级的浪潮中,铣床作为机械加工领域的核心装备,其性…

2025年11月热泵、电锅炉中央空调推荐榜绿色供暖源头厂家选择指南

随着清洁能源转型加速,电锅炉作为高效环保的供暖设备,市场需求持续攀升。本榜单基于技术创新度、区域覆盖力、节能效能三大维度,结合行业协会2024年度数据及用户满意度调研,权威解析2025年华北地区五大电锅炉品牌综…