64-bit

Sysnative map in Windows 64-bit uitgelegd

Sysnative map in Windows 64-bit uitgelegd

Met de release van Windows 7 van 64-bits is er een kleine verandering geïntroduceerd in de normale toewijzing van mappen in de Windows-directory. Twee nieuwe mappen zijn opgenomen in de 64-bits editie van Windows 10, Windows 8 en Windows 70. Zij zijn Synnative en SysWOW64 mappen. Dit is alleen in 64-bits Windows. Als u een 32-bits Windows op een 64-bits computer uitvoert, ziet u ze niet. U zult ze ook niet zien wanneer u 32-bits Windows op een 32-bits machine draait.

Er is nog een map buiten de Windows-map, en deze heet Programmabestanden (x86). We zijn gewend aan de naam van de map Program Files die de uitvoerbare bestanden van onze programma's bevat. In 64-bits systemen worden de 64-bits programma's opgeslagen in de map Program Files, terwijl de 32-bits programma's zijn ondergebracht in Program Files (x86). Windows gebruikt echter zoiets als een emulatie voor het uitvoeren van 32-bits programma's op een 64-bits machine. En daarom is het nodig om te weten en te begrijpen wat de systeemmappen zijn onder Windows (64 bit), zodat u weet hoe u het gewenste bestand kunt bereiken.

In tegenstelling tot de 32-bits machines, waar de 32-bits DLL's worden opgeslagen in de System32 map, de 64-bits versie van Windows slaat DLL's gerelateerd aan 64-bits op in de System32-map. Dit is om de programmeerdoeleinden te vergemakkelijken en om achterwaartse compatibiliteit te bieden. Dat wil zeggen, als een 64-bits programma in zijn code naar System32 verwijst, krijgt het automatisch de 64-bits DLL wanneer het wordt aangeroepen. Dit helpt ontwikkelaars omdat ze de code in hun programma's voor Windows 64-bit niet hoeven te wijzigen.

Kortom, Windows heeft alle 32-bits DLL's van de System32-map in de Windows-map naar een andere map verplaatst, zodat eerdere programma's niet opnieuw hoeven te worden gecodeerd om de juiste DLL's te krijgen, zelfs niet bij gebruik van API's - na een upgrade naar 64-bit. Het probleem doet zich voor wanneer een 32-bits toepassing toegang probeert te krijgen tot de System32-map. In dit geval zal het programma crashen omdat het niet is geschreven om 64-bits DLL's te verwerken.

Lezen: Wat is de Panther-map?

SysWOW64-map in Windows 64-bit

Alle 32-bits DLL's zijn verplaatst naar de nieuwe SysWOW64-map in de 64-bits versie van Windows 10, Windows 8 en Windows 7, dus wanneer de 32-bits programma's 32-bits DLL's aanroepen, moeten ze de map SysWOW64 bereiken.

Je hebt misschien het gevoel dat de ontwikkelaars hun programma's en applicaties moeten scannen om de DLL-functies naar de SysWOW64-map te verwijzen. Maar Microsoft heeft er al voor gezorgd. Als het een 32-bits programma is dat aanroept C:\Windows\System32, een emulator zal het pad omleiden naar C:\Windows\SysWOW64. Dat wil zeggen, om 32-bits programma's in Windows 64-bit uit te voeren, wordt een emulator gebruikt, zodat er een goede achterwaartse compatibiliteit is en om fouten te voorkomen bij het aanroepen van DLL-bestanden.

Lezen: Wat is de GEVONDEN.000 map?

Sysnative map in Windows 64-bit

Er kunnen gevallen zijn waarin een 32-bits programma of toepassing een 64-bits DLL nodig heeft. In dat geval moet u de omleidingsmap gebruiken Synnative. U kunt de SysNative beschouwen als een virtuele map en een alias die verwijst naar de System32-map. Het bestaat als zodanig niet fysiek op uw systeem.

Dus als uw 32-bits programma toegang moet hebben tot een 64-bits DLL, gebruik dan niet C:\Windows\System32 omdat de 32-bits programma-emulator het naar de 32-bits DLL-map met de naam SysWOW64 zal brengen. Gebruik in plaats daarvan C:\Windows\SysNative als het pad naar het DLL-programma. Als u Sysnative in het pad gebruikt, wordt het omgeleid naar de System32-map in plaats van de SysWOW64-map.

Als u Bestand Windows Verkenner opent, vindt u de map Sysnative niet in C:\Windows. Zelfs als u Mapopties instelt om verborgen en systeemmappen weer te geven. Dit komt omdat Windows File Explorer een 64-bits programma is wanneer het wordt uitgevoerd in een 64-bits Windows, en de map Sysnative alleen zichtbaar en toegankelijk is vanuit 32-bits programma's.

Opsommen:

  1. System32-mappen bevatten 64-bits DLL-bestanden.
  2. SysWOW64 bevat 32-bits DLL-bestanden en de 32-bits programma's worden automatisch naar deze map omgeleid
  3. Sysnative is een omleidingsmap waarmee 32-bits programma's 64-bits DLL's kunnen aanroepen.

Extra lees: MSDN.

Wilt u het verschil weten tussen System32- en SysWOW64-mappen??

SuperTuxKart voor Linux
SuperTuxKart is een geweldige titel die is ontworpen om je de Mario Kart-ervaring gratis te bieden op je Linux-systeem. Het is behoorlijk uitdagend en...
Strijd om Wesnoth Zelfstudie
The Battle for Wesnoth is een van de meest populaire open source strategiespellen die je op dit moment kunt spelen. Dit spel is niet alleen al heel la...
0 A.D. zelfstudie
Van de vele strategiespellen die er zijn, 0 A.D. slaagt erin om op te vallen als een uitgebreide titel en een zeer diep, tactisch spel ondanks dat het...