Sysnative Ordner in Windows 64-Bit erklärt
Mit der Veröffentlichung von Windows 7 64-Bit wurde die normale Zuordnung von Ordnern im Windows-Verzeichnis etwas geändert. In der 64-Bit-Edition von Windows 7, Windows 8 und Windows 10 sind zwei neue Ordner enthalten Sysnative und SysWOW64 Ordner. Dies ist nur in 64-Bit-Windows möglich. Wenn Sie ein 32-Bit-Windows auf einem 64-Bit-Computer ausführen, werden Sie nicht angezeigt. Sie werden auch nicht angezeigt, wenn Sie 32-Bit-Windows auf einem 32-Bit-Computer ausführen.
Es gibt einen anderen Ordner außerhalb des Windows-Verzeichnisses und es wird aufgerufen Programmdateien (x86). Wir sind an den Namen des Ordners Program Files gewöhnt, der die ausführbaren Dateien unserer Programme enthält. In 64-Bit-Systemen werden die 64-Bit-Programme im Ordner Programme gespeichert, während die 32-Bit-Programme in Programmdateien (x86) untergebracht sind. Windows verwendet jedoch so etwas wie eine Emulation, um 32-Bit-Programme auf einem 64-Bit-Computer auszuführen. Daher müssen Sie die Systemordner unter Windows (64 Bit) kennen und verstehen, damit Sie wissen, wie Sie die gewünschte Datei erreichen.
Im Gegensatz zu den 32-Bit-Computern, auf denen die 32-Bit-DLLs in gespeichert werden Ordner "System32", Die 64-Bit-Version von Windows speichert DLLs, die sich auf 64-Bit beziehen, im Ordner System32. Dies dient zur Vereinfachung der Programmierung und zur Abwärtskompatibilität. Das heißt, wenn ein 64-Bit-Programm in seinem Code auf System32 verweist, wird die 64-Bit-DLL beim Aufruf automatisch abgerufen. Dies hilft Entwicklern, da sie den Code in ihren Programmen nicht für Windows 64-Bit ändern müssen.
Kurz gesagt, Windows hat alle 32-Bit-DLLs aus dem System32-Ordner im Windows-Verzeichnis in einen anderen Ordner verschoben, sodass vorherige Programme nicht neu codiert werden müssen, um die richtigen DLLs zu erhalten, selbst wenn APIs verwendet werden - nach einem Upgrade auf 64-Bit. Das Problem tritt auf, wenn eine 32-Bit-Anwendung versucht, auf den Ordner "System32" zuzugreifen. In diesem Fall stürzt das Programm ab, da es nicht für 64-Bit-DLLs geschrieben wurde.
SysWOW64-Ordner in Windows 64-Bit
Alle 32-Bit-DLLs wurden in die neuen verschoben SysWOW64-Ordner In der 64-Bit-Version von Windows 7, Windows 8 und Windows 10 müssen die 32-Bit-Programme, die 32-Bit-DLLs aufrufen, den SysWOW64-Ordner erreichen.
Sie denken möglicherweise, dass die Entwickler ihre Programme und Anwendungen scannen müssen, um die DLL-Funktionen auf den SysWOW64-Ordner zu verweisen. Aber Microsoft hat sich schon darum gekümmert. Wenn es sich um ein 32-Bit-Programm handelt, das aufruft C: \ Windows \ System32, Ein Emulator leitet den Pfad zu weiter C: \ Windows \ SysWOW64. Das heißt, um 32-Bit-Programme in Windows 64-Bit auszuführen, wird ein Emulator verwendet, um eine ordnungsgemäße Abwärtskompatibilität zu gewährleisten und Fehler beim Aufruf von DLL-Dateien zu vermeiden.Sysnative Ordner in Windows 64-Bit
Es kann Fälle geben, in denen ein 32-Bit-Programm oder eine Anwendung eine 64-Bit-DLL benötigt. In diesem Fall müssen Sie den Umleitungsordner verwenden Sysnative. Sie können SysNative als einen virtuellen Ordner und einen Aliasnamen betrachten, der auf den System32-Ordner verweist. Es existiert physisch nicht als solches auf Ihrem System. Wenn Ihr 32-Bit-Programm auf eine 64-Bit-DLL zugreifen muss, verwenden Sie es nicht C: \ Windows \ System32 weil der 32-Bit-Programmemulator es in den 32-Bit-DLL-Ordner namens SysWOW64 bringt. Verwenden Sie stattdessen C: \ Windows \ SysNative als Pfad zum DLL-Programm. Bei Verwendung von Sysnative im Pfad wird es in den System32-Ordner anstelle des SysWOW64-Ordners umgeleitet.
Wenn Sie die Datei Windows Explorer öffnen, finden Sie den Ordner Sysnative nicht in C: \ Windows. Auch wenn Sie Ordneroptionen so einstellen, dass ausgeblendete Ordner und Systemordner angezeigt werden. Dies liegt daran, dass Windows File Explorer ein 64-Bit-Programm ist, wenn es in einem 64-Bit-Windows ausgeführt wird, und der Sysnative-Ordner nur in 32-Bit-Programmen sichtbar ist.
Um zusammenzufassen:
- System32-Ordner enthalten 64-Bit-DLL-Dateien.
- SysWOW64 enthält 32-Bit-DLL-Dateien, und die 32-Bit-Programme werden automatisch in diesen Ordner umgeleitet
- Sysnative ist ein Umleitungsordner, mit dem 32-Bit-Programme 64-Bit-DLLs aufrufen können.
Zusätzlich lesen: MSDN.
Möchten Sie den Unterschied zwischen den Ordnern System32 und SysWOW64 erfahren?