| Предыдущий | Следующий |
| STATUS_INVALID_IMAGE_PROTECT | STATUS_LOGON_SERVER_CONFLICT |
STATUS_INVALID_IMAGE_WIN_16
16-разрядный исполняемый файл Windows попал в современный путь загрузки образов
Этот статус обозначает старую модель исполняемых файлов Windows, а не неправильно сформированный современный PE-файл. Современные 64-разрядные системы Windows не предоставляют среду NTVDM, использовавшуюся для запуска 16-разрядных приложений Windows, а даже поддерживаемые старые конфигурации требуют специальной подсистемы совместимости.
Файлом может быть само приложение, старый загрузчик установки или вспомогательный компонент, встроенный в более новый носитель. Замены только запускающего файла недостаточно, если последующие компоненты также содержат 16-разрядный код или установщики.
Что проверить
- Определите, является ли сбойный файл основной программой, заглушкой установки, деинсталлятором или косвенным вспомогательным компонентом.
- Проверьте все исполняемые файлы дистрибутива на 16-разрядный формат NE и связанные устаревшие форматы.
- Используйте поддерживаемую виртуализированную старую среду или получите у поставщика 32- либо 64-разрядную сборку.
- Не отключайте подпись или защиту совместимости: они не способны преобразовать 16-разрядные инструкции и API.
Ссылки
- Открытые спецификации Microsoft: значения NTSTATUS
- Microsoft: формат PE и COFF
- LLVM: проверка COFF с помощью llvm-readobj
- Исходный код Wine: загрузчик модулей PE
Нужно найти другой код? Найти другой код состояния или ошибки.