Что означает код NTSTATUS 0xC0000359 (STATUS_INVALID_IMAGE_WIN_32)?

 
Предыдущий Следующий
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-разрядной вызывающей стороны.

Ссылки


Нужно найти другой код? Найти другой код состояния или ошибки.