x64系统的判断和x64下文件和注册表访问的重定向(3)
来源:互联网 发布:mac删除的照片在哪里 编辑:程序博客网 时间:2024/05/16 11:47
下面谈谈x64系统下文件的重定向:
x64下文件的重定向依然是WOW64具体执行细节的一部分,跟注册表重定向一样同样是为了将32为程序和64位程序分开。所谓文件重定向通俗点讲就是你去访问某些文件夹的文件的时候,会被定位到其他文件夹下面的文件去,而且这一切依然对用户透明。主要有以下一些文件夹会被重定向:
%Systemroot%/System32
%ProgramFiles%
当一个32位程序在默认情况下去访问%Systemroot%/System32时,会被定位到%Systemroot%/Syswow64文件夹下面。
要关闭和开启(x64下文件重定向默认是开启的)文件的重定向,需要了解三个API:
Wow64EnableWow64FsRedirection
Wow64DisableWow64FsRedirection
Wow64RevertWow64FsRedirection
不过MSDN说了Wow64EnableWow64FsRedirection不好云云,自己看:
The Wow64EnableWow64FsRedirection function enables or disables file system redirection for the calling thread.
This function may not work reliably when there are nested calls. Therefore, this function has been replaced by the Wow64DisableWow64FsRedirection and Wow64RevertWow64FsRedirection functions.
BOOLEAN Wow64EnableWow64FsRedirection(
BOOLEAN Wow64FsEnableRedirection
);
所以我们就使用Wow64DisableWow64FsRedirection和Wow64RevertWow64FsRedirection,这两个函数在Kernel32.dll里面,当然32位的这个DLL是没有这两个函数的,因此需要从dll中导出来使用。
直接上代码算了。
KWow64FsRedrt.h
KWow64FsRedrt.cpp
测试代码:
另外%ProgramFiles%这个环境变量并不受这两个API的影响,而只跟应用程序本身是否是32还是64位有关,当你使用ExpandEnvironmentStrings来展开%ProgramFiles%时,如果是32位程序,则返回的路径是C:/Program Files (x86),假设你的系统安装在c盘。而如果是64位程序,则返回C:/Program Files。
[end]
- x64系统的判断和x64下文件和注册表访问的重定向(3)
- x64系统的判断和x64下文件和注册表访问的重定向(3)
- x64系统的判断和x64下文件和注册表访问的重定向(1)
- x64系统的判断和x64下文件和注册表访问的重定向(2)
- x64系统的判断和x64下文件和注册表访问的重定向(1)
- x64系统的判断和x64下文件和注册表访问的重定向(2)
- x64系统的判断和x64下文件和注册表访问的重定向——补记
- x64下文件和注册表访问的重定向
- X64系统 注册表和文件重定向 Python
- 64位系统下文件重定向和注册表重定向
- [C#]用API的方法解决X64系统注册表被重定向问题
- [C#]api解决X64系统注册表被重定向问题
- WOW64:文件和注册表的重定向
- 文件和注册表的重定向解决方法
- WOW64:文件和注册表的重定向
- WOW64:文件和注册表的重定向
- 文件和注册表的重定向解决方法
- 文件和注册表的重定向解决方法
- 我们的linux-爱恨交加
- 字符串“编辑距离”(最大公共子串提取)
- ARM伪指令
- 网络&网络编程
- 在windows下与linux虚拟机进行文件共享
- x64系统的判断和x64下文件和注册表访问的重定向(3)
- WCF学习资源
- 字节那些事儿
- PADS Logic图文教程(十八):pdf打印输出
- PADS Logic图文教程(十九):中英文文字输入
- PADS Logic图文教程(二十):PADS Logic与Layout通讯
- PADS Logic图文教程(二十一):PADS layout pdf打印输出
- sybase id 跳号解决及备份
- Delphi播放声音文件类(包括调整其中任意一个声音的大小)