Я использую Wow64DisableWow64FsRedirection
/ Wow64RevertWow64FsRedirection
для отключения и восстановления перенаправления файлов WOW-64 (внесение system32 \ в syswow64 \ и некоторые изменения в реестре). Страница MSDN предупреждает, что вы должны использовать эти пары очень близко друг к другу, поскольку они влияют на все операции ввода-вывода, включая загрузку DLL.
Я успешно использовал их довольно долгое время, но теперь столкнулся с, казалось бы, невозможной ситуацией. Я пытаюсь вызвать функцию GetNamedSecurityInfo
, которая принимает путь к файлу. Путь к файлу часто будет в папке system32, поэтому мне нужно отключить перенаправление. Однако если я отключу перенаправление, функция вернет ERROR_BAD_EXE_FORMAT
.
Я пытался предварительно загрузить DLL, в которой он находится, с LoadLibrary(TEXT("Advapi32.dll"))
, но это не помогло. Я предполагаю, что он загружает другую DLL внутри GetNamedSecurityInfo
, но я не знаю, какая именно.
Так что вот вопрос сейчас. Как лучше всего справиться с этой ситуацией? Должен ли я просто предварительно загрузить все возможные библиотеки DLL перед использованием Wow64DisableWow64FsRedirection
? Есть ли лучший способ?
Спасибо.