Running windows 32 bit applications on windows 64 bit

Running 32-bit Applications

WOW64 is the x86 emulator that allows 32-bit Windows-based applications to run seamlessly on 64-bit Windows. This allows for 32-bit (x86) Windows applications to run seamlessly in 64-bit (x64) Windows, as well as for 32-bit (x86) and 32-bit (ARM) Windows applications to run seamlessly in 64-bit (ARM64) Windows. WOW64 is provided with the operating system and does not have to be explicitly enabled. For more information, see WOW64 Implementation Details.

The system isolates 32-bit applications from 64-bit applications, which includes preventing file and registry collisions. Console, GUI, and service applications are supported. The system provides interoperability across the 32/64 boundary for scenarios such as cut and paste and COM. However, 32-bit processes cannot load 64-bit DLLs for execution, and 64-bit processes cannot load 32-bit DLLs for execution. This restriction does not apply to DLLs loaded as data files or image resource files; for more information, see LoadLibraryEx.

A 32-bit application can detect whether it is running under WOW64 by calling the IsWow64Process function (use IsWow64Process2 if targeting WindowsВ 10). The application can obtain additional information about the processor by using the GetNativeSystemInfo function.

Note that 64-bit Windows does not support running 16-bit Windows-based applications. The primary reason is that handles have 32 significant bits on 64-bit Windows. Therefore, handles cannot be truncated and passed to 16-bit applications without loss of data. Attempts to launch 16-bit applications fail with the following error: ERROR_BAD_EXE_FORMAT.

How To: Install and Run 32-Bit Software on 64-bit Windows

If you have a 64-bit operating system on your computer, this does not mean that you can only use 64-bit software. Your operating system still has the ability to run 32-bit programs by “emulation” – basically, your computer will make the program think it is running a 32-bit operating system. That’s why installing a 32-bit program on a 64-bit operating system is as simple as installing a normal computer program.

Under Windows 64-bit, 32-bit applications run on an emulation of a 32-bit operating system called Windows 32-bit under Windows 64-bit, or WOW64 for short. WOW64 intercepts all operating system calls made by a 32-bit application.

For each operating system call, WOW64 generates native 64-bit system calls and converts 32-bit data structures into 64-bit oriented structures. The corresponding native 64-bit system call is transmitted to the operating system core and all output data from the 64-bit system call is converted to a format suitable for the calling application before being returned.

Like 32-bit applications, WOW64 operates in user mode, so that errors that occur when translating an operating system call only occur at this level. The 64-bit kernel cannot be assigned.

Since WOW64 operates in user mode, all 32-bit application codes must also operate in user mode. This explains why 32-bit kernel-mode device drivers and applications based on them do not work on 64-bit Windows.

Activating 32-bit installations on 64-bit Windows computers

April 2021 Update:

We now recommend using this tool for your error. Additionally, this tool fixes common computer errors, protects you against file loss, malware, hardware failures and optimizes your PC for maximum performance. You can fix your PC problems quickly and prevent others from happening with this software:

  • Step 1 : Download PC Repair & Optimizer Tool (Windows 10, 8, 7, XP, Vista – Microsoft Gold Certified).
  • Step 2 : Click “Start Scan” to find Windows registry issues that could be causing PC problems.
  • Step 3 : Click “Repair All” to fix all issues.
Читайте также:  Windows настройка сетевого сканера

Using the CommCell console (remote installation)

During a remote installation, on the Enter additional installation options page of the installation wizard, select the Install 32-bit instead of standard 64-bit packets (Windows X64 only) during a remote installation check box – this only protects 32-bit applications.

Alternative method: Using the installation package (local installation)

Before running the installation package, you must configure a registry key on the 64-bit computer:

Open the Windows registry editor, then move to the next directory:

  1. HKEY_LOCAL_MACHINE\SOFTWARE\SOFTWARE @
  2. Right-click on SOFTWARE, click New > Key, then name the new GalaxyInstallerFlags key.
  3. Right-click on GalaxyInstallerFlags, then click New > DWORD (32-bit) value.
  4. Right-click on the new value, click Rename, then enter the following new value: bAllow32BitInstallOn64Bit.
  5. Double-click the DWORD button, set the value data to 1, and click OK.
  6. Close the registry editor.

CONCLUSION

It is becoming increasingly difficult for users to choose between the 32-bit and 64-bit architectures supported by Windows. The system isolates 32-bit applications from 64-bit applications, including preventing collisions between files and the registry. The console, GUI and service applications are supported. The system ensures interoperability beyond the 32/64 limit for scenarios such as copy and paste and COM. However, 32-bit processes cannot load 64-bit DLLs for execution and 64-bit processes cannot load 32-bit DLLs for execution. This restriction does not apply to DLLs loaded as data files or image resource files.

CCNA, Web Developer, PC Troubleshooter

I am a computer enthusiast and a practicing IT Professional. I have years of experience behind me in computer programming, hardware troubleshooting and repair. I specialise in Web Development and Database Design. I also have a CCNA certification for Network Design and Troubleshooting.

Обзор вопросов совместимости 32-битных программ в 64-битных версиях Windows

В этой статье рассматриваются вопросы совместимости и ограничения для 32-битных программ, работающих в 64-битных версиях Windows.

Исходная версия продукта: Windows 10 — все выпуски, Windows Server 2012 R2
Исходный номер КБ: 896456

Аннотация

64-bit versions of Windows use the Microsoft Windows-32-on-Windows-64 (WOW64) subsystem to run 32-bit programs without modifications. 64-bit versions of Windows don’t provide support for 16-bit binaries or 32-bit drivers. Программы, зависят от 16-битных или 32-битных драйверов, не могут работать в 64-битных версиях Windows, если изготовитель программы не предоставляет обновление для программы.

Могут возникнуть вопросы, влияющие на совместимость и производительность программы. Вы можете определить, будет ли программа иметь проблемы совместимости или производительности, тестировать программу в одной из 64-битных версий Windows.

В этой статье описываются некоторые вопросы совместимости при запуске 32-битных программ в 64-битных версиях Windows. В этой статье не сравнивают 32- и 64-битные версии Windows или другие 64-битные операционные системы. В этой статье предполагается, что вы понимаете разницу между 32-битными и 64-битными.

Введение

Версии Microsoft Windows на основе x64 оптимизированы для запуска 64-битных программ. Кроме того, в 64-х версиях Windows для запуска 32-битных программ используется подсистема WOW64.

Запуск 32-битных программ

Подсистема WOW64 позволяет запускать 32-битные программы без изменений в 64-х версиях Windows. Для этого подсистема WOW64 создает 32-битную среду в 64-х версиях Windows. Дополнительные сведения о подсистеме WOW64 см. в разделе «Запуск 32-битных приложений» в разделе 64-bit Windows документации по Microsoft Platform SDK. Чтобы просмотреть этот документ, посетите следующий веб-сайт Майкрософт: запуск 32-битных приложений

Вопросы производительности программы

Подсистема WOW64 создает 32-битную среду в 64-х версиях Windows. Некоторые 32-битные программы могут работать в этих операционных системах медленнее, чем в 32-битных версиях Windows. Кроме того, некоторые 32- и 32-битные программы, для работы с 64-ми версиями Windows, для работы с которые требуется много тщательной памяти, могут привести к повышению производительности. Это увеличение производительности происходит потому, что версии Windows на основе x64 поддерживают больше физической памяти, чем 32-битные версии Windows.

Читайте также:  Драйвер epson 1290 для windows 10

Дополнительные сведения о различиях в управлении памятью между 64- и 32-битными версиями Windows см. в разделе «Виртуальное адресное пространство» в разделе «Управление памятью» документации по Microsoft Platform SDK. Чтобы просмотреть этот документ, посетите следующий веб-сайт Майкрософт: виртуальное адресное пространство

Ограничения подсистемы WOW64

Подсистема WOW64 не поддерживает следующие программы:

  • Программы, скомпилироваться для 16-битных операционных систем
  • Программы в режиме ядра, скомпилировать для 32-битных операционных систем

16-битные программы

64-битные версии Windows не поддерживают 16-битные программы или 16-битные компоненты программы. Эмуляция программного обеспечения, необходимая для запуска 16-битных программ в 64-й версии Windows, значительно снизит производительность этих программ.

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

Если 32-битная программа, которая требует 16-битных компонентов, попытается запустить 16-битный файл или компонент, 32-битная программа занося в журнал системы сообщение об ошибке. Затем операционная система позволит 32-битной программе обработать ошибку.

Чтобы определить, требуется ли для программы 16-битный компонент, установите и запустите программу. Если программа создает сообщение об ошибке, обратитесь к производителю программы за обновлением, совместимым с версиями Windows на основе x64.

32-битные драйверы

32-битные драйверы не поддерживаются в 64-х версиях Windows. Все драйверы оборудования и программные драйверы должны быть скомпилироваться специально для версии Windows на основе x64.

Если 32-битная программа попытается установить 32-битный драйвер на компьютере под управлением 64-х версий Windows, установка драйвера не удастся. При таком поведении 64-х версия Windows сообщает об ошибке 32-битной программе.

Если 32-битная программа попытается зарегистрировать 32-битный драйвер для автоматического запуска на компьютере под управлением 64-х версий Windows, загрузчик загрузчик первой загрузки на компьютере распознает, что 32-битный драйвер не поддерживается. 32-битный драйвер не запускается в 64-й версии Windows, но другие зарегистрированные драйверы.

Чтобы определить, требуется ли программе 32-битный драйвер, установите и запустите программу. Если программа создает сообщение об ошибке, обратитесь к производителю программы за обновлением, совместимым с версиями Windows на основе x64.

Дополнительные рекомендации

Реестр и перенаправление файлов

Подсистема WOW64 изолирует 32-битные файлы от 64-битных файлов, перенаправляя вызовы реестра и некоторые вызовы файловой системы. Подсистема WOW64 изолирует двоичные данные, чтобы предотвратить случайный доступ 32-битного двоичного файла к данным из 64-битного двоичного файла. Например, 32-битный двоичный файл, который запускает DLL-файл из папки %systemroot%\System32, может случайно попытаться получить доступ к 64-битным DLL-файлу, несовместимым с 32-битным двоичным файлом. Чтобы предотвратить это, подсистема WOW64 перенаправляет доступ из папки %systemroot%\System32 в папку %systemroot%\SysWOW64. Это перенаправление предотвращает ошибки совместимости, так как требует, чтобы DLL-файл был специально разработан для работы с 32-битными программами.

Дополнительные сведения о файловой системе и перенаправлении реестра см. в разделе «Запуск 32-битных приложений» в разделе 64-bit Windows документации microsoft Platform SDK. Чтобы просмотреть этот документ, посетите следующий веб-сайт Майкрософт: запуск 32-битных приложений
Подсистема WOW64 перенаправляет 32-битные двоичные вызовы без внесения изменений в 32-битные двоичные файлы. Однако это перенаправление может быть подтверждено при выполнении некоторых задач. Например, если ввести сценарий командной строки в 64-битной командной строке, командная строка не сможет получить доступ к 32-битным программам в папке Program Files. Подсистема WOW64 перенаправляет и устанавливает 32-битные программы в папку Program Files (x86). Чтобы получить доступ к нужной папке, необходимо изменить сценарий командной строки. Кроме того, необходимо ввести сценарий командной строки в 32-битной командной строке. 32-битная командная подсказка автоматически перенаправляет вызовы файловой системы в правильный 32-битный каталог.

Читайте также:  Серверные ос windows поддержка

Чтобы запустить 32-битную командную подсказку, выполните следующие действия.

  • Нажмите кнопку«Начните», нажмите кнопку«Выполнить», введите %windir%\SysWoW64\cmd.exe и нажмите кнопку «ОК».

Проверка версии

Некоторые 32-битные программы проверяют сведения о версии операционной системы. Многие 32-битные программы, которые выполняют эту проверку, не распознают 64-х версий Windows как совместимые операционные системы. При таком поведении 32-битная программа генерирует ошибку проверки версии, а затем закрывается. В таком случае обратитесь к производителю 32-битной программы за обновлением, совместимым с 64-ми версиями Windows.

Microsoft .NET Framework

Программа, скомпилданная с помощью Microsoft .NET Framework, будет запускаться как 32-битная программа в подсистеме WOW64, если сбылись следующие условия:

  • В сведениях о загоне программы задается бит ILONLY.
  • Программа была скомпилироваться с помощью Microsoft .NET Framework 1.1. Если в сведениях о загородных полях программы нет бита ILONLY или если программа была скомпилна с помощью Microsoft .NET Framework версии 2.0, программа будет запускаться в качестве 64-битной программы.

OpenGL

В версии Windows на основе x64 не включен графический драйвер OpenGL. Обратитесь к производителю устройства за драйвером, совместимым с 64-ми версиями Windows.

Консоль управления (MMC)

В 64-х версиях Windows для запуска различных оснастки используется 64-битная версия консоли управления (MMC). Однако иногда может потребоваться, чтобы 32-битная версия MMC запускала оснастки в подсистеме WOW64. Дополнительные сведения о поведении MMC в 64-х версиях Windows см. в разделе «Запуск 32- и 64-битных оснасток в 64-битных windows» в разделе «Использование MMC 2.0» документации по Microsoft Platform SDK. Чтобы просмотреть этот документ, посетите следующий веб-сайт Майкрософт: запуск 32- и 64-битных оснастки в 64-bit Windows

x64 Considerations

В 64-х версиях Windows поддерживаются 32-битные инструкции и 64-битные инструкции. Подсистема WOW64 может запускать 32-битные программы в 64-битном режиме, переключая нативный режим процессора. Отдельные аппаратные или программные уровни не требуются. При запуске 32-битной программы в 64-х версиях Windows производительность может не снизиться.

Для получения дополнительных сведений о производительности процессора на основе x64 обратитесь к производителю процессора или посетите веб-сайт изготовителя. Сведения и решение, представленные в этом документе, представляют текущее представление корпорации Майкрософт по этим вопросам на дату публикации. Это решение доступно через Корпорацию Майкрософт или стороне поставщика. Корпорация Майкрософт не рекомендует использовать сторонних поставщиков или сторонние решения, которые могут быть описаны в этой статье. В этой статье также могут быть другие сторонние поставщики или сторонние решения. Поскольку корпорация Майкрософт должна реагировать на изменение условий рынка, эту информацию не следует интерпретировать как обязательства корпорации Майкрософт. Корпорация Майкрософт не может гарантировать или утвердить точность информации или любого решения, представленного корпорацией Майкрософт или любым указанным сторонним поставщиком.

Корпорация Майкрософт не дает никаких гарантий и исключает все представления, гарантии и условия, как экспресс-, подразумеваемые, так и предусмотренные законом. К ним относятся, помимо прочего, представления, гарантии или условия заголовка, нена нарушение прав, удовлетворительное условие, возможность продавца и пригодность для конкретной цели в отношении любой службы, решения, продукта или любых других материалов или информации. Корпорация Майкрософт не несет ответственности ни за одно стороне решение, упомянутое в этой статье.

Ссылки

Дополнительные сведения об процессоре AMD64 можно получить на следующем веб-сайте Advanced Micro Devices: AMD Website
Контактные данные сторонних организаций предоставлены в этой статье с целью помочь пользователям получить необходимую техническую поддержку. Эти данные могут быть изменены без предварительного уведомления. Корпорация Майкрософт не дает гарантий относительно правильности приведенных контактных данных сторонних производителей.

Дополнительные сведения о разработке программ для версий Windows Server 2003 на основе Itanium и Windows XP можно найти на следующем веб-сайте Майкрософт: введение в разработку приложений для 64-битной версии Windows на основе Itanium

В этой статье упомянуты программные продукты независимых производителей. Корпорация Майкрософт не дает никаких явных, подразумеваемых и прочих гарантий относительно производительности или надежности этих продуктов.

Оцените статью