Megosztás a következőn keresztül:


Fájlrendszer-átirányító

A %windir%\System32 könyvtár 64 bites alkalmazásokhoz van fenntartva 64 bites Windows rendszeren. A DLL-fájlnevek többsége nem módosult a DLL-ek 64 bites verzióinak létrehozásakor, így a DLL-ek 32 bites verziói egy másik könyvtárban vannak tárolva. A WOW64 elrejti ezt a különbséget egy fájlrendszer-átirányítóhasználatával.

A legtöbb esetben, amikor egy 32 bites alkalmazás megpróbál hozzáférni %windir%\System32, %windir%\lastgood\system32, or %windir%\regedit.exe, a rendszer átirányítja a hozzáférést egy architektúraspecifikus elérési útra.

Jegyzet

Ezek az útvonalak csak referenciaként vannak megadva. A kompatibilitás érdekében az alkalmazások nem használhatják közvetlenül ezeket az útvonalakat. Ehelyett az alább ismertetett API-kat kell meghívniuk.

 

Eredeti elérési út 32 bites x86-folyamatok átirányított elérési útja Átirányított elérési út a 32 bites ARM-folyamatokhoz
%windir%\System32 %windir%\SysWOW64 %windir%\SysArm32
%windir%\lastgood\system32 %windir%\lastgood\SysWOW64 %windir%\lastgood\SysArm32
%windir%\regedit.exe %windir%\SysWOW64\regedit.exe %windir%\ SysArm32\regedit.exe

 

Ha a hozzáférés miatt a rendszer megjeleníti az UAC-kérést, az átirányítás nem történik meg. Ehelyett a kért fájl 64 bites verziója indul el. A probléma elkerülése érdekében adja meg a SysWOW64 könyvtárat az átirányítás elkerülése és a fájl 32 bites verziójához való hozzáférés biztosítása érdekében, vagy futtassa a 32 bites alkalmazást rendszergazdai jogosultságokkal, hogy az UAC-kérés ne jelenjen meg.

Windows Server 2003 és Windows XP: UAC nem támogatott.

Egyes alkönyvtárak mentesülnek az átirányítás alól. Ezekhez az alkönyvtárakhoz való hozzáférés nem lesz átirányítva %windir%\SysWOW64:

%windir%\system32\catroot
%windir%\system32\catroot2
%windir%\system32\driverstore
%windir%\system32\drivers\etc
%windir%\system32\logfiles
%windir%\system32\spool

Windows Server 2008, Windows Vista, Windows Server 2003 és Windows XP: %windir%\system32\driverstore átirányításra kerül.

A 32 bites rendszerkönyvtár nevének lekéréséhez a 64 bites alkalmazásoknak a GetSystemWow64Directory2 függvényt (Windows 10, 1511-es verzió) vagy a GetSystemWow64Directory függvényt kell használniuk.

Az alkalmazásoknak az SHGetKnownFolderPath függvénnyel kell meghatározniuk a %ProgramFiles% könyvtár nevét.

Windows Server 2003 és Windows XP: alkalmazásoknak a SHGetSpecialFolderPath függvényt kell használniuk a %ProgramFiles% könyvtár nevének meghatározásához.

Az alkalmazások a Wow64DisableWow64FsRedirection , Wow64EnableWow64FsRedirectionés Wow64RevertWow64FsRedirection függvényekkel irányíthatják a WOW64-fájlrendszer-átirányítást. A fájlrendszer átirányításának letiltása hatással van a hívószál által végrehajtott összes fájlműveletre, ezért csak akkor tiltsa le, ha egyetlen CreateFile híváshoz van szükség, és a függvény visszatérése után azonnal újra engedélyezve legyen. A fájlrendszer átirányításának hosszabb ideig történő letiltása megakadályozhatja, hogy a 32 bites alkalmazások betöltse a rendszer DLL-jeit, ami az alkalmazások sikertelenségéhez vezethet.

A 32 bites alkalmazások hozzáférhetnek a natív rendszerkönyvtárhoz a %windir%\Sysnative for %windir%\System32 helyettesítésével. A WOW64 a Sysnativet egy speciális aliasként ismeri fel, amely azt jelzi, hogy a fájlrendszer nem irányíthatja át a hozzáférést. Ez a mechanizmus rugalmas és könnyen használható, ezért az ajánlott mechanizmus a fájlrendszer átirányításának megkerülése. Vegye figyelembe, hogy a 64 bites alkalmazások nem használhatják a Sysnative aliast, mivel az nem valódi virtuális könyvtár.

Windows Server 2003 és Windows XP: A Sysnative alias a Windows Vista-val kezdődően lett hozzáadva.