使用Wow64DisableWow64FsRedirection 函数可禁用文件系统重定向. 默认情况下系统是启用文件系统重定向的。
使用此函数需要注意下面事项(以下来自MSDN的翻译):
此函数适用于64位系统中32位程序需要访问本机 system32 文件夹. 默认情况下, WOW64 文件系统重定向是启用的.
Wow64DisableWow64FsRedirection 和 Wow64RevertWow64FsRedirection 函数结合使用可以代替 Wow64EnableWow64FsRedirection 函数.
需要还原文件系统重定向, 调用 Wow64RevertWow64FsRedirection 函数. 每当成功调用 Wow64DisableWow64FsRedirection 函数后必须结合调用 Wow64RevertWow64FsRedirection 函数. 这将确保重定向功能重新启用并释放相关的系统资源.
注意 Wow64DisableWow64FsRedirection 函数会影响所有当前线程执行的文件操作, 当文件系统重定向禁用一段时间后可能会发生意想不到的后果. 例如, 加载的 DLL 依赖于文件系统重定向, 所以禁用文件系统重定向将引起 DLL 加载失败. 并且, 一些使用延迟加载实现的功能当重定向被禁用时会失败. 初始化延迟加载时失败, 任何使用延迟加载的函数将会失败, 即使重新开启文件系统重定向. 为了避免这些问题, 禁用文件系统重定向之前调用特定的文件输入输出函数(例如 CreateFile)不能被重定向, 并且重新启动文件系统重定向之后需立即使用 Wow64RevertWow64FsRedirection.
禁用文件系统重定向只影响当前线程的操作. 一些函数, 例如 CreateProcessAsUser, 他们在另一个线程运作, 而不受调用禁用文件系统重定向线程的影响.