我正在使用Wow64DisableWow64FsRedirection
/Wow64RevertWow64FsRedirection
来禁用和恢复 WOW-64 文件重定向(使 system32\ 到 syswow64\ 和一些注册表更改)。MSDN 页面警告说,您应该非常靠近地使用这些对,因为它们会影响所有 I/O 操作,包括加载 DLL。
我已经成功使用了一段时间,但现在遇到了一个看似不可能的情况。我试图调用的函数是GetNamedSecurityInfo
一个文件路径。文件路径经常会进入 system32 文件夹,所以我需要禁用重定向。但是,如果我禁用重定向,则函数返回ERROR_BAD_EXE_FORMAT
.
我试图预加载它所在的 DLL,LoadLibrary(TEXT("Advapi32.dll"))
但这没有帮助。我的猜测是它正在加载另一个 DLL,GetNamedSecurityInfo
但我不知道是哪个。
所以这是现在的问题。处理这种情况的最佳方法是什么?我应该在使用之前预加载所有可能的 DLLWow64DisableWow64FsRedirection
吗?有没有更好的办法?
谢谢。