Visão geral das considerações de compatibilidade para programas de 32 bits em versões de 64 bits do Windows

Este artigo aborda as considerações e limitações de compatibilidade para programas de 32 bits que estão em execução em versões de 64 bits do Windows.

Aplica-se a: Windows 10 — todas as edições, Windows Server 2012 R2
Número original do KB: 896456

Resumo

As versões de 64 bits do Windows usam o subsistema Microsoft Windows-32-on-Windows-64 (WOW64) para executar programas de 32 bits sem modificações. As versões de 64 bits do Windows não dão suporte a binários de 16 bits ou drivers de 32 bits. Programas que dependem de binários de 16 bits ou drivers de 32 bits não podem ser executados nas versões de 64 bits do Windows, a menos que o fabricante do programa forneça uma atualização para o programa.

Pode haver considerações que afetam a compatibilidade ou o desempenho de um programa. Você pode determinar se um programa terá problemas de compatibilidade ou desempenho testando o programa em uma das versões de 64 bits do Windows.

Este artigo descreve algumas das considerações de compatibilidade para executar programas de 32 bits nas versões de 64 bits do Windows. Este artigo não compara as versões de 32 bits e 64 bits do Windows ou sistemas operacionais de 64 bits diferentes. Este artigo pressupõe que você entenda a diferença entre binários de 32 bits e binários de 64 bits.

Introdução

As versões baseadas em x64 do Microsoft Windows são otimizadas para executar programas nativos de 64 bits. Além disso, as versões baseadas em x64 do Windows usam o subsistema WOW64 para executar programas de 32 bits.

Execução de programas de 32 bits

O subsistema WOW64 permite que programas de 32 bits sejam executados sem modificação nas versões baseadas em x64 do Windows. O subsistema WOW64 faz isso criando um ambiente de 32 bits nas versões baseadas em x64 do Windows. Para obter mais informações sobre o subsistema WOW64, consulte o tópico "Execução de aplicativos de 32 bits" na seção 64 bits do Windows da documentação do SDK da Plataforma da Microsoft. Para exibir este documento, visite o seguinte site da Microsoft: Execução de Aplicativos de 32 bits.

Considerações sobre o desempenho do programa

O subsistema WOW64 cria um ambiente de 32 bits nas versões baseadas em x64 do Windows. Alguns programas de 32 bits podem ser executados mais lentamente nesses sistemas operacionais do que em versões de 32 bits do Windows. Como alternativa, alguns programas de 32 bits que exigem muitas memórias podem apresentar um desempenho maior nas versões baseadas em x64 do Windows. Esse aumento de desempenho ocorre porque as versões baseadas em x64 do Windows dão suporte a mais memória física do que as versões de 32 bits do Windows.

Para obter mais informações sobre as diferenças no gerenciamento de memória entre as versões de 64 bits e 32 bits do Windows, consulte o tópico "Espaço de Endereço Virtual" na seção Sobre Gerenciamento de Memória da documentação do SDK da Plataforma da Microsoft. Para exibir este documento, visite o seguinte Site da Microsoft: Espaço de Endereço Virtual

Restrições do subsistema WOW64

O subsistema WOW64 não dá suporte aos seguintes programas:

  • Programas compilados para sistemas operacionais de 16 bits
  • Programas no modo de kernel compilados para sistemas operacionais de 32 bits

programas de 16 bits

As versões baseadas em x64 do Windows não dão suporte a programas de 16 bits ou componentes de programa de 16 bits. A emulação de software necessária para executar programas de 16 bits na versão baseada em x64 do Windows diminuiria significativamente o desempenho desses programas.

Um instalador de 16 bits é frequentemente usado para instalar e configurar um programa de 32 bits. Além disso, alguns programas de 32 bits exigem componentes de 16 bits para serem executados corretamente. Embora os programas de 32 bits que exigem componentes de 16 bits possam ser executados corretamente após a instalação, você não pode usar o instalador de 16 bits para instalar um programa de 32 bits. Os programas que exigem componentes de 16 bits não podem ser executados em versões baseadas em x64 do Windows.

Se um programa de 32 bits que requer componentes de 16 bits tentar executar um arquivo ou componente de 16 bits, o programa de 32 bits registrará uma mensagem de erro no log do Sistema. O sistema operacional permitirá que o programa de 32 bits gerencie o erro.

Para determinar se um programa requer um componente de 16 bits, instale e execute o programa. Se o programa gerar uma mensagem de erro, contate o fabricante do programa para obter uma atualização compatível com as versões baseadas em x64 do Windows.

drivers de 32 bits

As versões baseadas em x64 do Windows não dão suporte a drivers de 32 bits. Todos os drivers de dispositivo de hardware e drivers de programa devem ser compilados especificamente para a versão baseada em x64 do Windows.

Se um programa de 32 bits tentar instalar um driver de 32 bits em um computador que esteja executando uma versão baseada em x64 do Windows, a instalação do driver falhará. Quando esse comportamento ocorre, a versão baseada em x64 do Windows relata um erro para o programa de 32 bits.

Se um programa de 32 bits tentar registrar um driver de 32 bits para inicialização automática em um computador que esteja executando uma versão baseada em x64 do Windows, o carregador de inicialização no computador reconhecerá que não há suporte para o driver de 32 bits. A versão baseada em x64 do Windows não inicia o driver de 32 bits, mas inicia os outros drivers registrados.

Para determinar se um programa requer um driver de 32 bits, instale e execute o programa. Se o programa gerar uma mensagem de erro, contate o fabricante do programa para obter uma atualização compatível com as versões baseadas em x64 do Windows.

Considerações adicionais

Registro e redirecionamento de arquivo

O subsistema WOW64 isola binários de 32 bits de binários de 64 bits redirecionando chamadas do Registro e algumas chamadas do sistema de arquivos. O subsistema WOW64 isola os binários para impedir que um binário de 32 bits acesse acidentalmente dados de um binário de 64 bits. Por exemplo, um binário de 32 bits que executa um arquivo .dll da pasta %systemroot%\System32 pode tentar acidentalmente acessar um arquivo .dll de 64 bits que não é compatível com o binário de 32 bits. Para evitar isso, o subsistema WOW64 redireciona o acesso da pasta %systemroot%\System32 para a pasta %systemroot%\SysWOW64. Esse redirecionamento impede erros de compatibilidade porque exige que o arquivo .dll seja especificamente projetado para funcionar com programas de 32 bits.

Para obter mais informações sobre o sistema de arquivos e o redirecionamento de registro, consulte o tópico "Execução de aplicativos de 32 bits" na seção Windows de 64 bits da documentação do SDK da Plataforma da Microsoft. Para exibir este documento, visite o seguinte site da Microsoft: Execução de Aplicativos de 32 bits
O subsistema WOW64 redireciona chamadas binárias de 32 bits sem exigir alterações nos binários de 32 bits. No entanto, você pode ver evidências desse redirecionamento ao executar algumas tarefas. Por exemplo, se você digitar um script de linha de comando em um prompt de comando de 64 bits, o prompt de comando poderá não conseguir acessar programas de 32 bits na pasta Arquivos de Programas. O subsistema WOW64 redireciona e instala programas de 32 bits na pasta Arquivos de Programas (x86). Para acessar a pasta correta, você deve alterar o script de linha de comando. Como alternativa, você deve digitar o script de linha de comando em um prompt de comando de 32 bits. O prompt de comando de 32 bits redireciona automaticamente as chamadas do sistema de arquivos para o diretório de 32 bits correto.

Para iniciar um prompt de comando de 32 bits, siga estas etapas:

  • Clique em Iniciar, clique em Executar, digite %windir%\SysWoW64\cmd.exe e depois clique em OK.

Verificação de versão

Alguns programas de 32 bits examinam as informações de versão do sistema operacional. Muitos programas de 32 bits que executam essa verificação não reconhecem as versões baseadas em x64 do Windows como sistemas operacionais compatíveis. Quando esse comportamento ocorre, o programa de 32 bits gera um erro de verificação de versão e, em seguida, é fechado. Se esse comportamento ocorrer, contate o fabricante do programa de 32 bits para obter uma atualização compatível com as versões baseadas em x64 do Windows.

O Microsoft .NET Framework

Um programa compilado com o Microsoft .NET Framework será executado como um programa de 32 bits no subsistema WOW64 se as seguintes condições forem verdadeiras:

  • O programa tem o bit ILONLY definido nas informações do cabeçalho.
  • O programa foi compilado com o Microsoft .NET Framework 1.1. Se o programa não tiver o bit ILONLY definido nas informações do cabeçalho ou se o programa tiver sido compilado com o Microsoft .NET Framework versão 2.0, o programa será executado como um programa nativo de 64 bits.

OpenGL

As versões baseadas em x64 do Windows não incluem um driver de gráficos OpenGL. Contate o fabricante do dispositivo para obter um driver compatível com as versões baseadas em x64 do Windows.

MMC (Console de Gerenciamento Microsoft)

As versões baseadas em x64 do Windows usam a versão de 64 bits do MMC (Console de Gerenciamento Microsoft) para executar vários snap-ins. No entanto, ocasionalmente, você pode exigir que a versão de 32 bits do MMC execute snap-ins no subsistema WOW64. Para obter mais informações sobre o comportamento do MMC nas versões baseadas em x64 do Windows, consulte o tópico "Execução de Snap-ins de 32 bits e 64 bits no Windows de 64 bits" na seção Uso do MMC 2.0 da documentação do SDK da Plataforma Microsoft. Para exibir este documento, visite o seguinte site da Microsoft: Execução de Snap-ins de 32 bits e 64 bits no Windows de 64 bits

Considerações sobre x64

As versões baseadas em x64 do Windows dão suporte a instruções de 32 bits e instruções de 64 bits. O subsistema WOW64 pode executar programas de 32 bits no modo nativo de 64 bits alternando o modo nativo do processador. Camadas de hardware ou software separadas não são necessárias. Você pode não ter um desempenho reduzido ao executar um programa de 32 bits nas versões baseadas em x64 do Windows.

Para obter mais informações sobre o desempenho de um processador baseado em x64, entre em contato com o fabricante do processador ou visite o site do fabricante. As informações e a solução contidas neste documento representam a visão atual da Microsoft Corporation a respeito desses problemas na data da publicação. A solução está disponível pela Microsoft ou pelos fornecedores de terceiros. A Microsoft não recomenda especificamente nenhum fornecedor ou solução de terceiros que possam estar descritos neste artigo. É provável que existam fornecedores ou soluções de terceiros não descritos neste artigo. Como a Microsoft deve sempre responder às condições de mercado, essas informações não devem ser interpretadas como um compromisso da Microsoft. A Microsoft não garante ou endossa a precisão de nenhuma informação ou solução apresentada por ela ou por qualquer fornecedor de terceiros mencionado.

A Microsoft não oferece garantias e exclui todas as representações, garantias e condições expressas, implícitas ou legais. Isso inclui, mas sem limitações, representações, garantias ou condições de posse, não infringimento, condições satisfatórias, comercialização e adequação a uma finalidade específica em relação a quaisquer serviços, soluções, produtos ou outros materiais ou informações. Em nenhum momento a Microsoft Corporation é responsável pelas soluções dos fornecedores de terceiros mencionadas neste artigo.

Referências

Para obter mais informações sobre o processador AMD64, visite o seguinte site de Advanced Micro Devices: Site AMD
A Microsoft fornece informações de contato de terceiros para ajudá-lo a encontrar suporte técnico. Essas informações de contato podem ser alteradas sem aviso prévio. A Microsoft não garante a precisão dessas informações para contato com outras empresas.

Para obter mais informações sobre como desenvolver programas para as versões baseadas em Itanium do Windows Server 2003 e do Windows XP, visite o seguinte site da Microsoft: Introdução ao desenvolvimento de aplicativos para a versão baseada em Itanium de 64 bits do Windows

Os produtos de terceiros mencionados neste artigo são produzidos por empresas independentes da Microsoft. A Microsoft não fornece garantias, implícitas ou de outro tipo, em relação ao desempenho ou à confiabilidade desses produtos.