您的位置:首页 > 其它

Windows 64位操作系统 Wow64DisableWow64FsRedirection 函数说明

2015-12-24 23:44 1036 查看
原文:http://msdn.microsoft.com/zh-cn/library/aa365743(v=vs.85).aspx

这个函数常用于解决在64位系统中,32位程序访问注册表重定向到 WOW6432Note 里的问题

使用这个函数后可重定向访问到正确的64位注册项中。

第一次翻译,有问题或者理解有误请指出


Wow64DisableWow64FsRedirection 函数

调用时禁用文件系统重定向.
默认情况下启用文件系统重定向.


语法

C++

[code]
BOOL WINAPI Wow64DisableWow64FsRedirection(
  _Out_  PVOID *OldValue
);



参数

OldValue [out]

存储 WOW64 文件系统重定向的值. 系统使用此参数存储必要的信息以恢复(启用)文件系统重定向.

注意:这个参数仅用于系统. 为了避免意外的后果, 无论如何请不要修改此参数.


返回值

如果此函数执行成功, 将返回一个非0(Zero)的值.

如果此函数执行失败, 将返回0(Zero). 需要获得详细的错误信息, 请调用 GetLastError.


备注

此函数适用于64位系统中32位程序需要访问本机 system32 文件夹. 默认情况下, WOW64 文件系统重定向是启用的.

Wow64DisableWow64FsRedirection Wow64RevertWow64FsRedirection 函数结合使用可以代替 Wow64EnableWow64FsRedirection 函数.

需要还原文件系统重定向, 调用 Wow64RevertWow64FsRedirection 函数. 每当成功调用 Wow64DisableWow64FsRedirection 函数后必须结合调用 Wow64RevertWow64FsRedirection 函数.
这将确保重定向功能重新启用并释放相关的系统资源.

注意 Wow64DisableWow64FsRedirection 函数会影响所有当前线程执行的文件操作,
当文件系统重定向禁用一段时间后可能会发生意想不到的后果. 例如, 加载的 DLL 依赖于文件系统重定向, 所以禁用文件系统重定向将引起
DLL 加载失败. 并且, 一些使用延迟加载实现的功能当重定向被禁用时会失败. 初始化延迟加载时失败, 任何使用延迟加载的函数将会失败,
即使重新开启文件系统重定向. 为了避免这些问题, 禁用文件系统重定向之前调用特定的文件输入输出函数(例如 CreateFile)不能被重定向,
并且重新启动文件系统重定向之后需立即使用 Wow64RevertWow64FsRedirection.

禁用文件系统重定向只影响当前线程的操作. 一些函数, 例如 CreateProcessAsUser, 他们在另一个线程运作, 而不受调用禁用文件系统重定向线程的影响.

在 Windows 8 和 Windows Server 2012, 这个函数由以下技术支持.

技术是否支持
服务器信息块 (SMB) 3.0 协议

SMB 3.0 显性故障转移 (TFO)

SMB 3.0 扩展文件共享 (SO)

群集共享卷文件系统 (CsvFS)


弹性文件系统 (ReFS)

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: