Запуск 32-разрядных приложений

WOW64 — это эмулятор x86, который позволяет 32-разрядным приложениям на основе Windows работать без проблем на 64-разрядной Windows. Это позволяет 32-разрядным (x86) приложениям Windows работать без проблем в 64-разрядной Windows (x64), а также для 32-разрядных (x86) и 32-разрядных (ARM) Windows приложений для простого запуска в 64-разрядной Windows (ARM64). WOW64 предоставляется операционной системой и не должен быть явно включен. Дополнительные сведения см. в разделе "Сведения о реализации WOW64".

Система изолирует 32-разрядные приложения от 64-разрядных приложений, включая предотвращение конфликтов файлов и реестра. Поддерживаются консольные, графические интерфейсы и приложения-службы. Система обеспечивает взаимодействие между границами 32/64 для таких сценариев, как вырезания и вставки и COM. Однако 32-разрядные процессы не могут загружать 64-разрядные библиотеки DLL для выполнения, а 64-разрядные процессы не могут загружать 32-разрядные библиотеки DLL для выполнения. Это ограничение не применяется к библиотекам DLL, загруженным в виде файлов данных или файлов ресурсов изображений; Дополнительные сведения см. в разделе LoadLibraryEx.

32-разрядное приложение может определить, выполняется ли оно в WOW64, вызвав функцию IsWow64Process (используйте IsWow64Process2 при нацеливание на Windows 10). Приложение может получить дополнительные сведения о процессоре с помощью функции GetNativeSystemInfo .

Обратите внимание, что 64-разрядная Windows не поддерживает 16-разрядные приложения на основе Windows. Основная причина заключается в том, что дескрипторы имеют 32 значимых бита на 64-разрядной Windows. Таким образом, дескрипторы не могут быть усечены и переданы в 16-разрядные приложения без потери данных. Попытки запуска 16-разрядных приложений завершаются сбоем со следующей ошибкой: ERROR_BAD_EXE_FORMAT.

В этом разделе