Freigeben über


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

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

Ursprüngliche KB-Nummer: 896456

Übersicht

Die 64-Bit-Versionen von Windows verwenden das Microsoft Windows-32-on-Windows-64 (WOW64)-Subsystem, 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.

Es kann Überlegungen geben, die sich auf die Kompatibilität oder Leistung eines Programms auswirken. Sie können ermitteln, ob ein Programm Kompatibilitäts- oder Leistungsprobleme hat, indem Sie das Programm auf einer der 64-Bit-Versionen von Windows testen.

In diesem Artikel werden einige der Kompatibilitätsüberlegungen für die Ausführung von 32-Bit-Programmen in den 64-Bit-Versionen von Windows beschrieben. In diesem Artikel werden die 32-Bit- und 64-Bit-Versionen von Windows oder verschiedene 64-Bit-Betriebssysteme nicht 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 systemeigener 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

Das WOW64-Subsystem ermöglicht die Ausführung von 32-Bit-Programmen ohne Änderung in den x64-basierten Versionen von Windows. Das WOW64-Subsystem führt dies durch Erstellen einer 32-Bit-Umgebung in den x64-basierten Versionen von Windows durch. Weitere Informationen zum WOW64-Subsystem finden Sie im Thema "Ausführen von 32-Bit-Anwendungen" im 64-Bit-Windows-Abschnitt der Dokumentation zum Microsoft Platform SDK. Um dieses Dokument anzuzeigen, besuchen Sie die folgende Microsoft-Website: Ausführen von 32-Bit-Anwendungen.

Überlegungen zur Programmleistung

Das WOW64-Subsystem erstellt eine 32-Bit-Umgebung in den x64-basierten Versionen von Windows. Einige 32-Bit-Programme können auf diesen Betriebssystemen langsamer ausgeführt werden als bei 32-Bit-Versionen von Windows. Alternativ können einige 32-Bit-Programme, die viele Erinnerungen erfordern, eine höhere Leistung in den x64-basierten Versionen von Windows aufweisen. Diese Leistungssteigerung tritt auf, da die x64-basierten Versionen von Windows mehr physischen Arbeitsspeicher als die 32-Bit-Versionen von Windows unterstützen.

Weitere Informationen zu den Unterschieden bei der Speicherverwaltung zwischen den 64-Bit- und 32-Bit-Versionen von Windows finden Sie im Thema "Virtueller Adressraum" im Abschnitt "Über die Speicherverwaltung" der Dokumentation zum Microsoft Platform SDK. Um dieses Dokument anzuzeigen, besuchen Sie die folgende Microsoft-Website: Virtueller Adressraum

Einschränkungen des WOW64-Subsystems

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

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

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 auf der x64-basierten Version von Windows erforderlich ist, würde die Leistung dieser Programme erheblich verringern.

Ein 16-Bit-Installationsprogramm wird häufig verwendet, um ein 32-Bit-Programm zu installieren und zu konfigurieren. Darüber hinaus erfordern einige 32-Bit-Programme die ordnungsgemäße Ausführung von 16-Bit-Komponenten. Obwohl 32-Bit-Programme, die 16-Bit-Komponenten erfordern, nach der Installation möglicherweise ordnungsgemäß ausgeführt werden, 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 auf 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 für ein Programm eine 16-Bit-Komponente erforderlich ist, installieren und ausführen Sie das Programm. Wenn das Programm eine Fehlermeldung generiert, wenden Sie sich an den Hersteller des Programms für ein Update, 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 beim 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 Bootstrapladeprogramm auf dem Computer, dass der 32-Bit-Treiber nicht unterstützt wird. Die x64-basierte Version von Windows startet nicht den 32-Bit-Treiber, sondern startet die anderen registrierten Treiber.

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

Weitere Überlegungen

Registrierungs- und Dateiumleitung

Das WOW64-Subsystem isoliert 32-Bit-Binärdateien aus 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 entwickelt werden muss.

Weitere Informationen zur Dateisystem- und Registrierungsumleitung finden Sie im Thema "Ausführen von 32-Bit-Anwendungen" im 64-Bit-Windows-Abschnitt der Microsoft Platform SDK-Dokumentation. Um dieses Dokument anzuzeigen, besuchen Sie die folgende Microsoft-Website: Ausführen von 32-Bit-Anwendungen
Das WOW64-Subsystem leitet binäre 32-Bit-Aufrufe um, ohne dass Änderungen an den 32-Bit-Binärdateien erforderlich sind. Möglicherweise werden jedoch Nachweise für diese Umleitung angezeigt, wenn Sie einige Aufgaben ausführen. 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 und installiert 32-Bit-Programme im Ordner "Programme (x86)". 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 weiter.

Führen Sie die folgenden Schritte aus, um eine 32-Bit-Eingabeaufforderung zu starten:

  • Klicken Sie auf "Start", klicken Sie 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 schließt dann. Wenn dieses Verhalten auftritt, wenden Sie sich an den Hersteller des 32-Bit-Programms für ein Update, das mit den x64-basierten Versionen von Windows kompatibel ist.

The Microsoft .NET Framework

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

  • Das Programm hat das ILONLY-Bit in den Kopfzeileninformationen festgelegt.
  • Das Programm wurde mit Microsoft .NET Framework 1.1 kompiliert. Wenn das Programm die ILONLY-Bit-Datei in den Headerinformationen nicht festgelegt hat oder das Programm mit der 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 für einen Treiber, 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. Sie können jedoch gelegentlich die 32-Bit-Version von MMC zum Ausführen von Snap-Ins im WOW64-Subsystem benötigen. Weitere Informationen zum Verhalten von MMC in den x64-basierten Versionen von Windows finden Sie im Abschnitt "Ausführen von 32-Bit- und 64-Bit-Snap-Ins in 64-Bit-Windows" im Abschnitt "Verwenden von MMC 2.0" der Dokumentation zum Microsoft Platform SDK. Um dieses Dokument anzuzeigen, 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. Es kann nicht zu einer verringerten Leistung führen, wenn Sie ein 32-Bit-Programm in den x64-basierten Versionen von Windows ausführen.

Weitere Informationen zur Leistung eines x64-basierten Prozessors finden Sie beim Hersteller des Prozessors, oder besuchen Sie die 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. Dazu gehören, sind jedoch nicht beschränkt auf Vertretungen, Garantien oder Bedingungen des Titels, Nichtverletzung, zufriedenstellende Bedingung, Handelsfähigkeit und Eignung für einen bestimmten Zweck, in Bezug auf Dienste, Lösungen, Produkte oder andere Materialien oder 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.