这个函数常用于解决在 64 位操作系统中,32 位程序访问注册表重定向到 WOW6432Note 里的问题
使用这个函数后可重定向访问到正确的 64 位注册项。
第一次翻译,有问题或者理解有误请指出
Wow64DisableWow64FsRedirection 函数
调用时禁用文件系统重定向。默认情况下启用文件系统重定向。
语法
C++ |
---|
|
参数
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) | 否 |