Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule omówiono zagadnienia dotyczące zgodności i ograniczenia dotyczące programów 32-bitowych działających w 64-bitowych wersjach systemu Windows.
Oryginalny numer KB: 896456
Podsumowanie
64-bitowe wersje systemu Windows używają podsystemu Microsoft Windows-32-on-Windows-64 (WOW64) do uruchamiania programów 32-bitowych bez modyfikacji. 64-bitowe wersje systemu Windows nie zapewniają obsługi 16-bitowych sterowników binarnych ani sterowników 32-bitowych. Programy zależne od 16-bitowych plików binarnych lub sterowników 32-bitowych nie mogą działać w 64-bitowych wersjach systemu Windows, chyba że producent programu udostępni aktualizację programu.
Mogą istnieć zagadnienia wpływające na zgodność lub wydajność programu. Można określić, czy program będzie miał problemy ze zgodnością lub wydajnością, testując program w jednej z 64-bitowych wersji systemu Windows.
W tym artykule opisano niektóre zagadnienia dotyczące zgodności dotyczące uruchamiania programów 32-bitowych w 64-bitowych wersjach systemu Windows. W tym artykule nie porównano 32-bitowych i 64-bitowych wersji systemu Windows ani różnych 64-bitowych systemów operacyjnych. W tym artykule założono, że rozumiesz różnicę między 32-bitowymi plikami binarnymi i 64-bitowymi plikami binarnymi.
Wprowadzenie
Wersje systemu Microsoft Windows oparte na architekturze x64 są zoptymalizowane pod kątem uruchamiania natywnych programów 64-bitowych. Ponadto wersje systemu Windows oparte na architekturze x64 używają podsystemu WOW64 do uruchamiania programów 32-bitowych.
Uruchamianie programów 32-bitowych
Podsystem WOW64 umożliwia uruchamianie programów 32-bitowych bez modyfikacji w wersjach systemu Windows opartych na architekturze x64. Podsystem WOW64 wykonuje to przez utworzenie środowiska 32-bitowego w wersjach systemu Windows opartych na architekturze x64. Aby uzyskać więcej informacji na temat podsystemu WOW64, zobacz temat "Running 32-bit Applications" (Uruchamianie aplikacji 32-bitowych) w sekcji 64-bitowej systemu Windows w dokumentacji zestawu Microsoft Platform SDK. Aby wyświetlić ten dokument, odwiedź następującą witrynę sieci Web firmy Microsoft: Uruchamianie aplikacji 32-bitowych.
Zagadnienia dotyczące wydajności programu
Podsystem WOW64 tworzy środowisko 32-bitowe w wersjach systemu Windows opartych na architekturze x64. Niektóre programy 32-bitowe mogą działać wolniej w tych systemach operacyjnych niż w 32-bitowych wersjach systemu Windows. Alternatywnie niektóre programy 32-bitowe, które wymagają dużej ilości pamięci, mogą wykazywać zwiększoną wydajność w wersjach systemu Windows opartych na architekturze x64. Ten wzrost wydajności występuje, ponieważ wersje systemu Windows oparte na architekturze x64 obsługują więcej pamięci fizycznej niż 32-bitowe wersje systemu Windows.
Aby uzyskać więcej informacji na temat różnic w zarządzaniu pamięcią między 64-bitowymi i 32-bitowymi wersjami systemu Windows, zobacz temat "Wirtualna przestrzeń adresowa" w sekcji About Memory Management (Informacje o zarządzaniu pamięcią) w dokumentacji zestawu Microsoft Platform SDK. Aby wyświetlić ten dokument, odwiedź następującą witrynę sieci Web firmy Microsoft: Wirtualna przestrzeń adresowa
Ograniczenia podsystemu WOW64
Podsystem WOW64 nie obsługuje następujących programów:
- Programy skompilowane dla 16-bitowych systemów operacyjnych
- Programy w trybie jądra kompilowane dla 32-bitowych systemów operacyjnych
Programy 16-bitowe
Wersje systemu Windows oparte na architekturze x64 nie obsługują programów 16-bitowych ani 16-bitowych składników programu. Emulacja oprogramowania wymagana do uruchamiania programów 16-bitowych w wersji x64 systemu Windows znacznie obniżyłaby wydajność tych programów.
16-bitowy instalator jest często używany do instalowania i konfigurowania programu 32-bitowego. Ponadto niektóre programy 32-bitowe wymagają poprawnego działania składników 16-bitowych. Mimo że programy 32-bitowe wymagające 16-bitowych składników mogą działać poprawnie po zainstalowaniu, nie można użyć instalatora 16-bitowego do zainstalowania 32-bitowego programu. Programy wymagające 16-bitowych składników nie mogą działać w wersjach systemu Windows opartych na architekturze x64.
Jeśli program 32-bitowy, który wymaga składników 16-bitowych próbuje uruchomić 16-bitowy plik lub składnik, program 32-bitowy zarejestruje komunikat o błędzie w dzienniku systemu. Następnie system operacyjny umożliwi programowi 32-bitowe obsługę błędu.
Aby określić, czy program wymaga składnika 16-bitowego, zainstaluj i uruchom program. Jeśli program generuje komunikat o błędzie, skontaktuj się z producentem programu w celu uzyskania aktualizacji zgodnej z wersjami systemu Windows opartymi na architekturze x64.
Sterowniki 32-bitowe
Wersje systemu Windows oparte na architekturze x64 nie obsługują sterowników 32-bitowych. Wszystkie sterowniki urządzeń sprzętowych i sterowniki programu muszą być skompilowane specjalnie dla wersji systemu Windows opartej na architekturze x64.
Jeśli 32-bitowy program próbuje zainstalować sterownik 32-bitowy na komputerze z uruchomioną wersją systemu Windows opartą na architekturze x64, instalacja sterownika zakończy się niepowodzeniem. W przypadku wystąpienia tego zachowania wersja systemu Windows oparta na architekturze x64 zgłasza błąd programu 32-bitowego.
Jeśli program 32-bitowy próbuje zarejestrować sterownik 32-bitowy do automatycznego uruchamiania na komputerze z uruchomioną wersją systemu Windows opartą na architekturze x64, moduł ładujący bootstrap na komputerze rozpoznaje, że sterownik 32-bitowy nie jest obsługiwany. Wersja systemu Windows oparta na architekturze x64 nie uruchamia sterownika 32-bitowego, ale uruchamia inne zarejestrowane sterowniki.
Aby określić, czy program wymaga sterownika 32-bitowego, zainstaluj i uruchom program. Jeśli program generuje komunikat o błędzie, skontaktuj się z producentem programu w celu uzyskania aktualizacji zgodnej z wersjami systemu Windows opartymi na architekturze x64.
Uwagi dodatkowe
Przekierowywanie rejestru i plików
Podsystem WOW64 izoluje 32-bitowe pliki binarne z 64-bitowych plików binarnych, przekierowując wywołania rejestru i niektóre wywołania systemu plików. Podsystem WOW64 izoluje pliki binarne, aby zapobiec przypadkowemu uzyskiwaniu dostępu do danych z 64-bitowego pliku binarnego 32-bitowego. Na przykład 32-bitowy plik binarny, który uruchamia plik .dll z folderu %systemroot%\System32, może przypadkowo spróbować uzyskać dostęp do 64-bitowego pliku .dll, który nie jest zgodny z 32-bitowym plikiem binarnym. Aby temu zapobiec, podsystem WOW64 przekierowuje dostęp z folderu %systemroot%\System32 do folderu %systemroot%\SysWOW64. To przekierowanie zapobiega błędom zgodności, ponieważ wymaga, aby plik .dll był specjalnie zaprojektowany do pracy z programami 32-bitowymi.
Aby uzyskać więcej informacji na temat systemu plików i przekierowania rejestru, zobacz temat "Running 32-bit Applications" (Uruchamianie aplikacji 32-bitowych) w sekcji 64-bitowej systemu Windows w dokumentacji zestawu Microsoft Platform SDK. Aby wyświetlić ten dokument, odwiedź następującą witrynę sieci Web firmy Microsoft: Uruchamianie aplikacji 32-bitowych
Podsystem WOW64 przekierowuje 32-bitowe wywołania binarne bez konieczności wprowadzania zmian w 32-bitowych plikach binarnych. Jednak podczas wykonywania niektórych zadań może zostać wyświetlony dowód tego przekierowania. Jeśli na przykład wpiszesz skrypt wiersza polecenia w 64-bitowym wierszu polecenia, wiersz polecenia może nie mieć dostępu do programów 32-bitowych w folderze Program Files. Podsystem WOW64 przekierowuje i instaluje programy 32-bitowe w folderze Program Files (x86). Aby uzyskać dostęp do poprawnego folderu, musisz zmienić skrypt wiersza polecenia. Alternatywnie należy wpisać skrypt wiersza polecenia w 32-bitowym wierszu polecenia. 32-bitowy wiersz polecenia automatycznie przekierowuje wywołania systemu plików do poprawnego katalogu 32-bitowego.
Aby uruchomić 32-bitowy wiersz polecenia, wykonaj następujące kroki:
- Kliknij przycisk Start, kliknij przycisk Uruchom, wpisz %windir%\SysWoW64\cmd.exe, a następnie kliknij przycisk OK.
Sprawdzanie wersji
Niektóre programy 32-bitowe sprawdzają informacje o wersji systemu operacyjnego. Wiele programów 32-bitowych wykonujących tę kontrolę nie rozpoznaje wersji systemu Windows opartych na architekturze x64 jako zgodnych systemów operacyjnych. W przypadku wystąpienia tego zachowania program 32-bitowy wygeneruje błąd sprawdzania wersji, a następnie zamknie. W takim przypadku skontaktuj się z producentem 32-bitowego programu w celu uzyskania aktualizacji zgodnej z wersjami systemu Windows opartymi na architekturze x64.
The Microsoft .NET Framework
Program skompilowany za pomocą programu Microsoft .NET Framework będzie działać jako program 32-bitowy w podsystemie WOW64, jeśli spełnione są następujące warunki:
- Program ma bit ILONLY ustawiony w informacjach nagłówka.
- Program został skompilowany przy użyciu programu Microsoft .NET Framework 1.1. Jeśli program nie ma bitu ILONLY ustawionego w informacjach nagłówka lub jeśli program został skompilowany z programem Microsoft .NET Framework w wersji 2.0, program zostanie uruchomiony jako natywny program 64-bitowy.
OpenGL
Wersje systemu Windows oparte na architekturze x64 nie zawierają sterownika graficznego OpenGL. Skontaktuj się z producentem urządzenia, aby uzyskać sterownik zgodny z wersjami systemu Windows opartymi na architekturze x64.
Microsoft Management Console (MMC)
Wersje systemu Windows oparte na architekturze x64 używają 64-bitowej wersji programu Microsoft Management Console (MMC) do uruchamiania różnych przystawek. Jednak czasami może być wymagana 32-bitowa wersja programu MMC do uruchamiania przystawek w podsystemie WOW64. Aby uzyskać więcej informacji na temat zachowania programu MMC w wersjach opartych na architekturze x64 systemu Windows, zobacz sekcję "Uruchamianie 32-bitowych i 64-bitowych przystawek w 64-bitowym systemie Windows" w sekcji Using MMC 2.0 (Korzystanie z programu MMC 2.0) w dokumentacji zestawu Microsoft Platform SDK. Aby wyświetlić ten dokument, odwiedź następującą witrynę sieci Web firmy Microsoft: Uruchamianie 32-bitowych i 64-bitowych przystawek w 64-bitowym systemie Windows
Zagadnienia dotyczące architektury x64
Wersje systemu Windows oparte na architekturze x64 obsługują instrukcje 32-bitowe i instrukcje 64-bitowe. Podsystem WOW64 może uruchamiać programy 32-bitowe w trybie natywnym 64-bitowym, przełączając tryb macierzysty procesora. Oddzielne warstwy sprzętowe lub programowe nie są wymagane. W przypadku uruchamiania 32-bitowego programu w wersjach systemu Windows opartych na architekturze x64 może wystąpić spadek wydajności.
Aby uzyskać więcej informacji na temat wydajności procesora x64, skontaktuj się z producentem procesora lub odwiedź witrynę sieci Web producenta. Informacje i rozwiązanie zawarte w tym dokumencie reprezentują bieżący firmy Microsoft Corporation w tych kwestiach na dzień publikacji. To rozwiązanie jest dostępne za pośrednictwem firmy Microsoft lub dostawcy innej firmy. Firma Microsoft nie zaleca konkretnie żadnego innego dostawcy ani rozwiązania innej firmy, które może opisywać ten artykuł. Mogą istnieć również inni dostawcy lub rozwiązania innych firm, których ten artykuł nie opisuje. Ponieważ firma Microsoft musi reagować na zmieniające się warunki rynkowe, te informacje nie powinny być interpretowane jako zobowiązanie firmy Microsoft. Firma Microsoft nie może zagwarantować ani potwierdzić dokładności jakichkolwiek informacji ani jakiegokolwiek rozwiązania, które jest prezentowane przez firmę Microsoft lub jakiegokolwiek wymienionego dostawcę zewnętrznego.
Firma Microsoft nie udziela żadnych gwarancji i wyklucza wszystkie oświadczenia, gwarancje i warunki, zarówno te wyrażone bezpośrednio, dorozumiane, jak i ustawowe. Należą one do nich, ale nie są ograniczone do reprezentacji, gwarancji lub warunków tytułu, nienależących do naruszenia, zadowalającego warunku, możliwości handlowej i przydatności do określonego celu, w odniesieniu do jakiejkolwiek usługi, rozwiązania, produktu lub innych materiałów lub informacji. W żadnym wypadku firma Microsoft nie ponosi odpowiedzialności za jakiekolwiek rozwiązania innych firm wymienionych w tym artykule.
Informacje
Aby uzyskać więcej informacji na temat procesora AMD64, odwiedź następującą witrynę sieci Web Advanced Micro Devices: AMD Website
Firma Microsoft udostępnia informacje dotyczące sposobów kontaktowania się z innymi firmami, aby ułatwić uzyskanie niezbędnej pomocy technicznej. Informacje te mogą zostać zmienione bez powiadomienia. Firma Microsoft nie gwarantuje dokładności informacji dotyczących innych firm.
Aby uzyskać więcej informacji na temat tworzenia programów dla systemów Windows Server 2003 i Windows XP opartych na itanium, odwiedź następującą witrynę firmy Microsoft: Wprowadzenie do tworzenia aplikacji dla 64-bitowej wersji systemu Windows opartej na itanium
Produkty innych firm omówione w tym artykule są wytwarzane przez producentów niezależnych od firmy Microsoft. Firma Microsoft nie daje żadnych gwarancji, dorozumianych ani żadnego innego rodzaju, dotyczących wydajności lub niezawodności tych produktów.