| Предыдущий | Следующий |
| STATUS_DS_AG_CANT_HAVE_UNIVERSAL_MEMBER | STATUS_INVALID_IMAGE_WIN_64 |
STATUS_INVALID_IMAGE_WIN_32
Загрузчик получил 32-разрядный образ в несовместимом контексте
Статус обозначает внешне корректный 32-разрядный образ Windows в пути, который ожидает другую разрядность или роль образа. Он может возникнуть, когда 64-разрядный процесс пытается загрузить 32-разрядную DLL в свой адресный простор, при выборе развёртыванием x86-артефакта для компонента только x64 либо в низкоуровневом пути загрузчика без поддержки преобразования WOW.
WOW позволяет многим 32-разрядным исполняемым файлам работать в 64-разрядной Windows, но не разрешает 64-разрядному процессу загрузить 32-разрядную DLL в то же адресное пространство. Интеграция между разрядностями требует разделения процессов и границы IPC.
Что проверить
- Прочитайте поле COFF Machine и magic необязательного заголовка проблемного образа.
- Запишите разрядность вызывающего процесса и роль образа: основной исполняемый файл, DLL, драйвер или отображение только данных.
- Проверьте условия компонентов установщика и перенаправление файловой системы, которые могли выбрать путь x86.
- Используйте 32-разрядный вспомогательный процесс, если компонент нельзя пересобрать для 64-разрядной вызывающей стороны.
Ссылки
- Microsoft Open Specifications: значения NTSTATUS
- Microsoft: формат PE и COFF
- LLVM: проверка COFF с помощью llvm-readobj
- Microsoft: LoadLibrary
Нужно найти другой код? Найти другой код состояния или ошибки.