Overzicht van de compatibiliteitsoverwegingen voor 32-bits programma's in 64-bits versies van Windows

In dit artikel worden de compatibiliteitsoverwegingen en -beperkingen besproken voor 32-bits programma's die worden uitgevoerd op 64-bits versies van Windows.

Van toepassing op: Windows 10 - alle edities, Windows Server 2012 R2
Origineel KB-nummer: 896456

Samenvatting

De 64-bits versies van Windows gebruiken het Subsysteem Microsoft Windows-32-on-Windows-64 (WOW64) om 32-bits programma's zonder wijzigingen uit te voeren. De 64-bits versies van Windows bieden geen ondersteuning voor 16-bits binaire bestanden of 32-bits stuurprogramma's. Programma's die afhankelijk zijn van 16-bits binaire bestanden of 32-bits stuurprogramma's kunnen niet worden uitgevoerd op de 64-bits versies van Windows, tenzij de fabrikant van het programma een update voor het programma biedt.

Er kunnen overwegingen zijn die van invloed zijn op de compatibiliteit of prestaties van een programma. U kunt bepalen of een programma compatibiliteits- of prestatieproblemen heeft door het programma te testen op een van de 64-bits versies van Windows.

In dit artikel worden enkele compatibiliteitsoverwegingen beschreven voor het uitvoeren van 32-bits programma's op de 64-bits versies van Windows. In dit artikel worden de 32-bits en 64-bits versies van Windows of verschillende 64-bits besturingssystemen niet vergeleken. In dit artikel wordt ervan uitgegaan dat u het verschil begrijpt tussen 32-bits binaire bestanden en 64-bits binaire bestanden.

Inleiding

De x64-versies van Microsoft Windows zijn geoptimaliseerd voor het uitvoeren van systeemeigen 64-bits programma's. Bovendien gebruiken de x64-versies van Windows het WOW64-subsysteem om 32-bits programma's uit te voeren.

32-bits programma's uitvoeren

Met het WOW64-subsysteem kunnen 32-bits programma's zonder wijziging worden uitgevoerd in de x64-versies van Windows. Het WOW64-subsysteem doet dit door een 32-bits omgeving te maken op de x64-versies van Windows. Zie het onderwerp '32-bits toepassingen uitvoeren' in de 64-bits Windows-sectie van de Microsoft Platform SDK-documentatie voor meer informatie over het WOW64-subsysteem. Als u dit document wilt bekijken, gaat u naar de volgende Microsoft-website: 32-bits toepassingen uitvoeren.

Aandachtspunten voor programmaprestaties

Het WOW64-subsysteem maakt een 32-bits omgeving op de x64-versies van Windows. Sommige 32-bits programma's kunnen langzamer worden uitgevoerd op deze besturingssystemen dan op 32-bits versies van Windows. Sommige 32-bits programma's waarvoor veel geheugen nodig is, kunnen ook betere prestaties leveren op de x64-versies van Windows. Deze prestatieverhoging treedt op omdat de x64-versies van Windows meer fysiek geheugen ondersteunen dan de 32-bits versies van Windows.

Zie het onderwerp 'Virtuele adresruimte' in de sectie Over geheugenbeheer van de Microsoft Platform SDK-documentatie voor meer informatie over de verschillen in geheugenbeheer tussen de 64-bits en 32-bits versie van Windows. Als u dit document wilt bekijken, gaat u naar de volgende Microsoft-website: Virtuele adresruimte

Beperkingen van het WOW64-subsysteem

Het WOW64-subsysteem biedt geen ondersteuning voor de volgende programma's:

  • Programma's die zijn gecompileerd voor 16-bits besturingssystemen
  • Kernelmodusprogramma's die zijn gecompileerd voor 32-bits besturingssystemen

16-bits programma's

De x64-versies van Windows bieden geen ondersteuning voor 16-bits programma's of 16-bits programmaonderdelen. De software-emulatie die is vereist voor het uitvoeren van 16-bits programma's op de x64-gebaseerde versie van Windows zou de prestaties van deze programma's aanzienlijk verminderen.

Een 16-bits installatieprogramma wordt vaak gebruikt voor het installeren en configureren van een 32-bits programma. Daarnaast moeten sommige 32-bits programma's 16-bits onderdelen correct uitvoeren. Hoewel 32-bits programma's waarvoor 16-bits onderdelen zijn vereist, correct kunnen worden uitgevoerd nadat ze zijn geïnstalleerd, kunt u het 16-bits installatieprogramma niet gebruiken om een 32-bits programma te installeren. Programma's waarvoor 16-bits onderdelen zijn vereist, kunnen niet worden uitgevoerd op x64-versies van Windows.

Als een 32-bits programma waarvoor 16-bits onderdelen zijn vereist probeert een 16-bits bestand of onderdeel uit te voeren, wordt in het 32-bits programma een foutbericht in het systeemlogboek geregistreerd. Het besturingssysteem laat vervolgens het 32-bits programma de fout afhandelen.

Als u wilt bepalen of een programma een 16-bits onderdeel vereist, installeert en voert u het programma uit. Als het programma een foutbericht genereert, neemt u contact op met de fabrikant van het programma voor een update die compatibel is met de x64-versies van Windows.

32-bits stuurprogramma's

De x64-versies van Windows bieden geen ondersteuning voor 32-bits stuurprogramma's. Alle hardware-apparaatstuurprogramma's en programma-stuurprogramma's moeten specifiek worden gecompileerd voor de x64-versie van Windows.

Als een 32-bits programma probeert een 32-bits stuurprogramma te installeren op een computer met een x64-versie van Windows, mislukt de installatie van het stuurprogramma. Wanneer dit gedrag optreedt, meldt de x64-versie van Windows een fout aan het 32-bits programma.

Als een 32-bits programma probeert een 32-bits stuurprogramma te registreren voor automatisch opstarten op een computer met een x64-versie van Windows, herkent de bootstraplader op de computer dat het 32-bits stuurprogramma niet wordt ondersteund. De x64-versie van Windows start niet het 32-bits stuurprogramma, maar start wel de andere geregistreerde stuurprogramma's.

Als u wilt bepalen of voor een programma een 32-bits stuurprogramma is vereist, installeert en voert u het programma uit. Als het programma een foutbericht genereert, neemt u contact op met de fabrikant van het programma voor een update die compatibel is met de x64-versies van Windows.

Aanvullende overwegingen

Register- en bestandsomleiding

Het WOW64-subsysteem isoleert 32-bits binaire bestanden van 64-bits binaire bestanden door registeraanroepen en enkele bestandssysteemaanroepen om te leiden. Het WOW64-subsysteem isoleert de binaire bestanden om te voorkomen dat een 32-bits binair bestand per ongeluk toegang heeft tot gegevens uit een 64-bits binair bestand. Een 32-bits binair bestand dat een .dll bestand uitvoert vanuit de map %systemroot%\System32, kan bijvoorbeeld per ongeluk proberen toegang te krijgen tot een 64-bits .dll-bestand dat niet compatibel is met het 32-bits binaire bestand. Om dit te voorkomen, leidt het WOW64-subsysteem de toegang van de map %systemroot%\System32 om naar de map %systemroot%\SysWOW64. Deze omleiding voorkomt compatibiliteitsfouten omdat het .dll-bestand specifiek moet zijn ontworpen voor gebruik met 32-bits programma's.

Zie het onderwerp '32-bits toepassingen uitvoeren' in de 64-bits Windows-sectie van de Microsoft Platform SDK-documentatie voor meer informatie over bestandssysteem- en registeromleiding. Als u dit document wilt bekijken, gaat u naar de volgende Microsoft-website: 32-bits toepassingen uitvoeren
Het WOW64-subsysteem leidt 32-bits binaire aanroepen om zonder dat er wijzigingen in de 32-bits binaire bestanden nodig zijn. U ziet echter mogelijk bewijs van deze omleiding wanneer u bepaalde taken uitvoert. Als u bijvoorbeeld een opdrachtregelscript typt bij een 64-bits opdrachtprompt, heeft de opdrachtprompt mogelijk geen toegang tot 32-bits programma's in de map Program Files. Het WOW64-subsysteem omleidt en installeert 32-bits programma's in de map Program Files (x86). Als u de juiste map wilt openen, moet u het opdrachtregelscript wijzigen. U kunt ook het opdrachtregelscript typen bij een 32-bits opdrachtprompt. Met de 32-bits opdrachtprompt worden bestandssysteemaanroepen automatisch omgeleid naar de juiste 32-bits map.

Volg deze stappen om een 32-bits opdrachtprompt te starten:

  • Klik op Start, klik op Uitvoeren, typ %windir%\SysWoW64\cmd.exe en klik vervolgens op OK.

Versiecontrole

Sommige 32-bits programma's onderzoeken de versie-informatie van het besturingssysteem. Veel 32-bits programma's die deze controle uitvoeren, herkennen de x64-versies van Windows niet als compatibele besturingssystemen. Wanneer dit gedrag optreedt, genereert het 32-bits programma een versiecontrolefout en sluit het programma. Als dit gedrag optreedt, neemt u contact op met de fabrikant van het 32-bits programma voor een update die compatibel is met de x64-versies van Windows.

Het Microsoft .NET Framework

Een programma dat is gecompileerd met het Microsoft .NET Framework wordt uitgevoerd als een 32-bits programma in het WOW64-subsysteem als aan de volgende voorwaarden wordt voldaan:

  • Voor het programma is de ILONLY-bit ingesteld in de headergegevens.
  • Het programma is gecompileerd met het Microsoft .NET Framework 1.1. Als voor het programma de ILONLY-bit niet is ingesteld in de headergegevens of als het programma is gecompileerd met Microsoft .NET Framework versie 2.0, wordt het programma uitgevoerd als een systeemeigen 64-bits programma.

OpenGL

De x64-versies van Windows bevatten geen OpenGL-stuurprogramma voor afbeeldingen. Neem contact op met de fabrikant van het apparaat voor een stuurprogramma dat compatibel is met de x64-versies van Windows.

Microsoft Management Console (MMC)

De x64-versies van Windows gebruiken de 64-bits versie van Microsoft Management Console (MMC) om verschillende modules uit te voeren. U kunt echter af en toe vereisen dat de 32-bits versie van MMC modules uitvoert in het WOW64-subsysteem. Zie het onderwerp '32-bits en 64-bits modules uitvoeren in 64-bits Windows' in de sectie MMC 2.0 gebruiken van de Microsoft Platform SDK-documentatie voor meer informatie over het gedrag van MMC in de x64-versies van Windows. Als u dit document wilt bekijken, gaat u naar de volgende Microsoft-website: 32-bits en 64-bits modules uitvoeren in 64-bits Windows

x64-overwegingen

De x64-versies van Windows ondersteunen 32-bits instructies en 64-bits instructies. Het WOW64-subsysteem kan 32-bits programma's uitvoeren in de systeemeigen 64-bits modus door de systeemeigen modus van de processor te wisselen. Afzonderlijke hardware- of softwarelagen zijn niet vereist. Mogelijk heeft u geen verminderde prestaties wanneer u een 32-bits programma uitvoert op de x64-versies van Windows.

Neem voor meer informatie over de prestaties van een x64-processor contact op met de fabrikant van de processor of ga naar de website van de fabrikant. De informatie en de oplossing in dit document geven de standpunten van Microsoft Corporation weer aangaande de besproken onderwerpen ten tijde van deze publicatie. Deze oplossing is beschikbaar via Microsoft of derden. Microsoft beveelt geen specifieke derden of oplossingen van derden aan die in dit artikel worden beschreven. Er kunnen ook andere derden of oplossingen van derden zijn die niet in dit artikel ter sprake zijn gekomen. Omdat Microsoft moet reageren op veranderingen in de markt, mag deze informatie niet worden opgevat als een belofte van Microsoft. Microsoft kan de nauwkeurigheid van de informatie of van de oplossingen die door Microsoft of door vermelde derden worden aangedragen, niet garanderen of goedkeuren.

Microsoft biedt geen garanties en wijst alle beweringen, garanties en voorwaarden van de hand, of deze nu uitdrukkelijk, impliciet of wettelijk zijn. Dat zijn onder andere (maar niet alleen) beweringen, garanties of voorwaarden betreffende eigendom, niet inbreuk maken, behoorlijke conditie, verkoopbaarheid, geschiktheid voor een bepaald doel, met betrekking tot enige service, oplossing, product of andere materialen of informatie. Microsoft stelt zich in geen geval aansprakelijk voor enige oplossing van een derde die in dit artikel wordt genoemd.

Verwijzingen

Ga naar de volgende Advanced Micro Devices-website voor meer informatie over de AMD64-processor: AMD-website
Microsoft verstrekt deze contactinformatie om u te helpen bij het aanvragen van technische ondersteuning. Deze contactinformatie kan zonder voorafgaande kennisgeving worden gewijzigd. Microsoft kan niet instaan voor de juistheid van deze contactinformatie.

Ga naar de volgende Microsoft-website voor meer informatie over het ontwikkelen van programma's voor de Itanium-versies van Windows Server 2003 en Windows XP: Inleiding tot het ontwikkelen van toepassingen voor de 64-bits Itanium-versie van Windows

De producten van derden die in dit artikel worden vermeld, worden vervaardigd door bedrijven die onafhankelijk zijn van Microsoft. Microsoft verleent dan ook geen enkele garantie, impliciet noch anderszins, omtrent de prestaties of de betrouwbaarheid van deze producten.