Übersicht über die Kompatibilitätsaspekte für 32-Bit-Programme unter 64-Bit-Versionen von Windows

In diesem Artikel werden die Kompatibilitätsaspekte und Einschränkungen für 32-Bit-Programme erläutert, die unter 64-Bit-Versionen von Windows ausgeführt werden.

Gilt für: Windows 10 (alle Editionen), Windows Server 2012 R2
Ursprüngliche KB-Nummer: 896456

Zusammenfassung

Die 64-Bit-Versionen von Windows verwenden das Subsystem Microsoft Windows-32-on-Windows-64 (WOW64), um 32-Bit-Programme ohne Änderungen auszuführen. Die 64-Bit-Versionen von Windows bieten keine Unterstützung für 16-Bit-Binärdateien oder 32-Bit-Treiber. Programme, die von 16-Bit-Binärdateien oder 32-Bit-Treibern abhängen, können nicht auf den 64-Bit-Versionen von Windows ausgeführt werden, es sei denn, der Programmhersteller stellt ein Update für das Programm bereit.

Möglicherweise gibt es Überlegungen, die sich auf die Kompatibilität oder Leistung eines Programms auswirken. Sie können feststellen, ob bei einem Programm Kompatibilitäts- oder Leistungsprobleme auftreten, indem Sie das Programm auf einer der 64-Bit-Versionen von Windows testen.

In diesem Artikel werden einige Kompatibilitätsaspekte für die Ausführung von 32-Bit-Programmen unter den 64-Bit-Versionen von Windows beschrieben. In diesem Artikel werden nicht die 32-Bit- und 64-Bit-Versionen von Windows oder verschiedene 64-Bit-Betriebssysteme verglichen. In diesem Artikel wird davon ausgegangen, dass Sie den Unterschied zwischen 32-Bit-Binärdateien und 64-Bit-Binärdateien verstehen.

Einführung

Die x64-basierten Versionen von Microsoft Windows sind für die Ausführung nativer 64-Bit-Programme optimiert. Darüber hinaus verwenden die x64-basierten Versionen von Windows das WOW64-Subsystem, um 32-Bit-Programme auszuführen.

Ausführen von 32-Bit-Programmen

Mit dem WOW64-Subsystem können 32-Bit-Programme ohne Änderungen in den x64-basierten Versionen von Windows ausgeführt werden. Das WOW64-Subsystem erstellt dazu eine 32-Bit-Umgebung unter den x64-basierten Versionen von Windows. Weitere Informationen zum WOW64-Subsystem finden Sie im Thema „Ausführen von 32-Bit-Anwendungen“ im Abschnitt „64-Bit-Windows“ der Dokumentation zum Microsoft Platform SDK. Um dieses Dokument anzusehen, besuchen Sie die folgende Microsoft-Website: Ausführen von 32-Bit-Anwendungen.

Überlegungen zur Programmleistung

Das WOW64-Subsystem erstellt unter den x64-basierten Versionen von Windows eine 32-Bit-Umgebung. Einige 32-Bit-Programme können auf diesen Betriebssystemen langsamer laufen als unter 32-Bit-Versionen von Windows. Alternativ können aber auch einige 32-Bit-Programme, die viel Speicher erfordern, unter den x64-basierten Versionen von Windows eine höhere Leistung aufweisen. Diese Leistungssteigerung tritt auf, weil die x64-basierten Versionen von Windows mehr physischen Speicher unterstützen als die 32-Bit-Versionen von Windows.

Weitere Informationen zu den Unterschieden bei der Speicherverwaltung zwischen der 64-Bit- und der 32-Bit-Version von Windows finden Sie unter dem Thema „Virtueller Adressraum“ im Abschnitt zur Speicherverwaltung in der Dokumentation zum Microsoft Platform SDK. Um dieses Dokument anzusehen, besuchen Sie die folgende Microsoft-Website: Virtueller Adressraum

Einschränkungen des WOW64-Subsystems

Das WOW64-Subsystem unterstützt die folgenden Programme nicht:

  • Programme, die für 16-Bit-Betriebssysteme kompiliert wurden
  • Kernelmodusprogramme, die für 32-Bit-Betriebssysteme kompiliert wurden

16-Bit-Programme

Die x64-basierten Versionen von Windows unterstützen keine 16-Bit-Programme oder 16-Bit-Programmkomponenten. Die Softwareemulation, die zum Ausführen von 16-Bit-Programmen unter einer x64-basierten Version von Windows erforderlich ist, würde die Leistung dieser Programme erheblich verringern.

Häufig wird ein 16-Bit-Installationsprogramm zum Installieren und Konfigurieren eines 32-Bit-Programms verwendet. Darüber hinaus erfordern einige 32-Bit-Programme eine ordnungsgemäße Ausführung von 16-Bit-Komponenten. Obwohl 32-Bit-Programme, die 16-Bit-Komponenten erfordern, nach der Installation möglicherweise ordnungsgemäß laufen, können Sie das 16-Bit-Installationsprogramm nicht verwenden, um ein 32-Bit-Programm zu installieren. Programme, die 16-Bit-Komponenten erfordern, können nicht unter x64-basierten Versionen von Windows ausgeführt werden.

Wenn ein 32-Bit-Programm, das 16-Bit-Komponenten erfordert, versucht, eine 16-Bit-Datei oder -Komponente auszuführen, protokolliert das 32-Bit-Programm eine Fehlermeldung im Systemprotokoll. Das Betriebssystem lässt dann das 32-Bit-Programm den Fehler behandeln.

Um festzustellen, ob ein Programm eine 16-Bit-Komponente benötigt, installieren Sie das Programm und führen Sie es aus. Wenn das Programm eine Fehlermeldung generiert, wenden Sie sich an den Hersteller des Programms, um ein Update zu erhalten, das mit den x64-basierten Versionen von Windows kompatibel ist.

32-Bit-Treiber

Die x64-basierten Versionen von Windows unterstützen keine 32-Bit-Treiber. Alle Hardwaregerätetreiber und Programmtreiber müssen speziell für die x64-basierte Version von Windows kompiliert werden.

Wenn ein 32-Bit-Programm versucht, einen 32-Bit-Treiber auf einem Computer zu installieren, auf dem eine x64-basierte Version von Windows ausgeführt wird, schlägt die Installation des Treibers fehl. Wenn dieses Verhalten auftritt, meldet die x64-basierte Version von Windows einen Fehler an das 32-Bit-Programm.

Wenn ein 32-Bit-Programm versucht, einen 32-Bit-Treiber für den automatischen Start auf einem Computer zu registrieren, auf dem eine x64-basierte Version von Windows ausgeführt wird, erkennt das Bootstrap-Ladeprogramm auf dem Computer, dass der 32-Bit-Treiber nicht unterstützt wird. Die x64-basierte Version von Windows startet den 32-Bit-Treiber nicht, aber die anderen registrierten Treiber werden gestartet.

Um festzustellen, ob für ein Programm ein 32-Bit-Treiber erforderlich ist, installieren Sie das Programm, und führen Sie es aus. Wenn das Programm eine Fehlermeldung generiert, wenden Sie sich an den Hersteller des Programms, um ein Update zu erhalten, das mit den x64-basierten Versionen von Windows kompatibel ist.

Zusätzliche Überlegungen

Registrierungs- und Dateiumleitung

Das WOW64-Subsystem isoliert 32-Bit-Binärdateien von 64-Bit-Binärdateien, indem Registrierungsaufrufe und einige Dateisystemaufrufe umgeleitet werden. Das WOW64-Subsystem isoliert die Binärdateien, um zu verhindern, dass eine 32-Bit-Binärdatei versehentlich auf Daten aus einer 64-Bit-Binärdatei zugreift. Beispielsweise kann eine 32-Bit-Binärdatei, die eine .dll Datei aus dem Ordner „%systemroot%\System32“ ausführt, versehentlich versuchen, auf eine 64-Bit-DLL-Datei zuzugreifen, die nicht mit der 32-Bit-Binärdatei kompatibel ist. Um dies zu verhindern, leitet das WOW64-Subsystem den Zugriff vom Ordner „%systemroot%\System32“ in den Ordner „%systemroot%\SysWOW64“ um. Diese Umleitung verhindert Kompatibilitätsfehler, da die DLL-Datei speziell für die Arbeit mit 32-Bit-Programmen konzipiert sein muss.

Weitere Informationen zur Dateisystem- und Registrierungsumleitung finden Sie unter dem Thema „Ausführen von 32-Bit-Anwendungen“ im Abschnitt „64-Bit-Windows“ der Dokumentation zum Microsoft Platform SDK. Um dieses Dokument anzusehen, besuchen Sie die folgende Microsoft-Website: Ausführen von 32-Bit-Anwendungen
Das WOW64-Subsystem leitet 32-Bit-Binäraufrufe um, ohne dass Änderungen an den 32-Bit-Binärdateien erforderlich sind. Es kann jedoch vorkommen, dass Sie bei der Ausführung einiger Aufgaben Hinweise auf diese Umleitung sehen. Wenn Sie beispielsweise ein Befehlszeilenskript an einer 64-Bit-Eingabeaufforderung eingeben, kann die Eingabeaufforderung möglicherweise nicht auf 32-Bit-Programme im Ordner „Programme“ zugreifen. Das WOW64-Subsystem leitet 32-Bit-Programme in den Ordner „Programme (x86)“ um und installiert sie. Um auf den richtigen Ordner zuzugreifen, müssen Sie das Befehlszeilenskript ändern. Alternativ müssen Sie das Befehlszeilenskript an einer 32-Bit-Eingabeaufforderung eingeben. Die 32-Bit-Eingabeaufforderung leitet Dateisystemaufrufe automatisch an das richtige 32-Bit-Verzeichnis um.

Gehen Sie wie folgt vor, um eine 32-Bit-Eingabeaufforderung zu starten:

  • Klicken Sie im Startmenü auf Ausführen, geben Sie %windir%\SysWoW64\cmd.exe ein, und klicken Sie dann auf OK.

Versionsüberprüfung

Einige 32-Bit-Programme untersuchen die Versionsinformationen des Betriebssystems. Viele 32-Bit-Programme, die diese Überprüfung durchführen, erkennen die x64-basierten Versionen von Windows nicht als kompatible Betriebssysteme. Wenn dieses Verhalten auftritt, generiert das 32-Bit-Programm einen Versionsüberprüfungsfehler und wird dann geschlossen. Wenn dieses Verhalten auftritt, wenden Sie sich an den Hersteller des 32-Bit-Programms, um ein Update zu erhalten, das mit den x64-basierten Versionen von Windows kompatibel ist.

Das Microsoft .NET Framework

Ein Programm, das mit dem Microsoft .NET Framework kompiliert wird, wird als 32-Bit-Programm im WOW64-Subsystem ausgeführt, wenn die folgenden Bedingungen zutreffen:

  • Für das Programm ist das ILONLY-Bit in den Kopfzeileninformationen festgelegt.
  • Das Programm wurde mit dem Microsoft .NET Framework 1.1 kompiliert. Wenn das ILONLY-Bit nicht in den Kopfzeileninformationen für das Programm festgelegt ist, oder wenn das Programm mit Microsoft .NET Framework Version 2.0 kompiliert wurde, wird das Programm als systemeigenes 64-Bit-Programm ausgeführt.

OpenGL

Die x64-basierten Versionen von Windows enthalten keinen OpenGL-Grafiktreiber. Wenden Sie sich an den Hersteller des Geräts, um einen Treiber zu erhalten, der mit den x64-basierten Versionen von Windows kompatibel ist.

Microsoft Management Console (MMC)

Die x64-basierten Versionen von Windows verwenden die 64-Bit-Version von Microsoft Management Console (MMC), um verschiedene Snap-Ins auszuführen. Möglicherweise benötigen Sie jedoch gelegentlich die 32-Bit-Version von MMC, um Snap-Ins im WOW64-Subsystem auszuführen. Weitere Informationen zum Verhalten von MMC in den x64-basierten Versionen von Windows finden Sie im Thema „Ausführen von 32-Bit- und 64-Bit-Snap-Ins in 64-Bit-Windows“ im Abschnitt „Verwenden von MMC 2.0“ in der Dokumentation zum Microsoft Platform SDK. Um dieses Dokument anzusehen, besuchen Sie die folgende Microsoft-Website: Ausführen von 32-Bit- und 64-Bit-Snap-Ins in 64-Bit-Windows

Überlegungen zu x64

Die x64-basierten Versionen von Windows unterstützen 32-Bit-Anweisungen und 64-Bit-Anweisungen. Das WOW64-Subsystem kann 32-Bit-Programme im nativen 64-Bit-Modus ausführen, indem der systemeigene Modus des Prozessors gewechselt wird. Separate Hardware- oder Softwareebenen sind nicht erforderlich. Wenn Sie ein 32-Bit-Programm unter den x64-basierten Versionen von Windows ausführen, wird die Leistung möglicherweise nicht beeinträchtigt.

Weitere Informationen zur Leistung eines x64-basierten Prozessors erhalten Sie vom Hersteller des Prozessors oder auf der Website des Herstellers. Die in diesem Dokument enthaltenen Informationen und Lösungsvorschläge repräsentieren den Kenntnisstand der Microsoft Corporation in Bezug auf die beschriebenen Probleme zum Zeitpunkt der Veröffentlichung. Die beschriebene Lösung wird von Microsoft und Drittanbietern gleichermaßen angeboten. Microsoft spricht keine ausdrückliche Empfehlung für in diesem Artikel genannte Drittanbieter oder deren Lösungen aus. Möglicherweise gibt es weitere Drittanbieter, die ebenfalls Lösungen für das beschriebene Problem anbieten, in diesem Artikel aber nicht genannt werden. Da Microsoft gezwungen ist, auf sich verändernde Marktbedingungen zu reagieren, sind diese Informationen für Microsoft nicht bindend. Microsoft kann für die Genauigkeit oder Eignung von Informationen und Lösungen, die von Microsoft oder in diesem Artikel genannten Drittanbietern angeboten werden, nicht garantieren.

Microsoft gewährt keine ausdrücklichen, impliziten oder gesetzlichen Garantien und gibt keinerlei diesbezügliche Zusicherungen ab. Dies gilt unter anderem auch für Zusicherungen, Garantien oder Bedingungen in Bezug auf die Unterlassung von Vertragsverletzungen, einen zufriedenstellenden Zustand, Handelsfähigkeit und die Eignung für einen bestimmten Zweck von jeglichen Diensten, Lösungen, Produkten oder sonstigen Materialien und Informationen. Microsoft haftet in keinem Fall für Lösungen von Drittanbietern, die in diesem Artikel erwähnt werden.

References

Weitere Informationen zum AMD64-Prozessor finden Sie auf der folgenden Advanced Micro Devices-Website: AMD-Website
Die Kontaktinformationen zu den in diesem Artikel erwähnten Drittanbietern sollen Ihnen helfen, den benötigten technischen Support zu finden. Diese Kontaktinformationen können ohne vorherige Ankündigung geändert werden. Sie werden von Microsoft ohne jede Gewähr weitergegeben.

Weitere Informationen zum Entwickeln von Programmen für die Itanium-basierten Versionen von Windows Server 2003 und Windows XP finden Sie auf der folgenden Microsoft-Website: Einführung in die Entwicklung von Anwendungen für die 64-Bit-Itanium-basierte Version von Windows

Die in diesem Artikel genannten Drittanbieterprodukte stammen von Herstellern, die von Microsoft unabhängig sind. Microsoft gewährt keine implizite oder sonstige Garantie in Bezug auf die Leistung oder Zuverlässigkeit dieser Produkte.