Delen via


Bestandssysteemomleiding

De %windir%\System32-map is gereserveerd voor 64-bits toepassingen in 64-bits Windows. De meeste DLL-bestandsnamen zijn niet gewijzigd wanneer 64-bits versies van de DLL's zijn gemaakt, dus 32-bits versies van de DLL's worden opgeslagen in een andere map. WOW64 verbergt dit verschil met behulp van een bestandssysteemomleiding.

In de meeste gevallen wordt de toegang omgeleid naar een architectuurspecifiek pad wanneer een 32-bits toepassing toegang probeert te krijgen tot %windir%\System32, %windir%\lastgood\system32, or %windir%\regedit.exe.

Notitie

Deze paden worden alleen ter referentie verstrekt. Voor compatibiliteit mogen toepassingen deze paden niet rechtstreeks gebruiken. In plaats daarvan moeten ze de API's aanroepen die hieronder worden beschreven.

 

Oorspronkelijk pad Omgeleid pad voor 32-bits x86-processen Omgeleid pad voor 32-bits ARM-processen
%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

 

Als de toegang ervoor zorgt dat het systeem de UAC-prompt weergeeft, vindt omleiding niet plaats. In plaats daarvan wordt de 64-bits versie van het aangevraagde bestand gestart. Als u dit probleem wilt voorkomen, geeft u de Map SysWOW64 op om omleiding te voorkomen en ervoor te zorgen dat de 32-bits versie van het bestand wordt geopend, of voert u de 32-bits toepassing uit met beheerdersbevoegdheden, zodat de UAC-prompt niet wordt weergegeven.

Windows Server 2003 en Windows XP: UAC wordt niet ondersteund.

Bepaalde submappen zijn vrijgesteld van omleiding. Toegang tot deze submappen wordt niet omgeleid naar %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 en Windows XP: %windir%\system32\driverstore wordt omgeleid.

Als u de naam van de 32-bits systeemmap wilt ophalen, moeten 64-bits toepassingen de functie GetSystemWow64Directory2 (Windows 10, versie 1511) of de functie GetSystemWow64Directory gebruiken.

Toepassingen moeten de functie SHGetKnownFolderPath gebruiken om de naam van de %ProgramFiles% map te bepalen.

Windows Server 2003 en Windows XP: toepassingen moeten de functie SHGetSpecialFolderPath gebruiken om de %ProgramFiles% mapnaam te bepalen.

Toepassingen kunnen de wow64-bestandssysteemomleiding beheren met behulp van de Wow64DisableWow64FsRedirection, Wow64EnableWow64FsRedirectionen Wow64RevertWow64FsRedirection functies. Het uitschakelen van omleiding van het bestandssysteem is van invloed op alle bestandsbewerkingen die worden uitgevoerd door de aanroepende thread, dus deze moet alleen worden uitgeschakeld wanneer dat nodig is voor één CreateFile-aanroep en opnieuw is ingeschakeld direct nadat de functie is geretourneerd. Het uitschakelen van omleiding van het bestandssysteem voor langere perioden kan voorkomen dat 32-bits toepassingen systeem-DLL's laden, waardoor de toepassingen mislukken.

32-bits toepassingen hebben toegang tot de systeemeigen systeemmap door %windir%\Sysnative te vervangen door %windir%\System32. WOW64 herkent Sysnative als een speciale alias die wordt gebruikt om aan te geven dat het bestandssysteem de toegang niet mag omleiden. Dit mechanisme is flexibel en eenvoudig te gebruiken, daarom is het het aanbevolen mechanisme om bestandssysteemomleiding te omzeilen. Houd er rekening mee dat 64-bits toepassingen de Sysnative-alias niet kunnen gebruiken, omdat het een virtuele map is die geen echte map is.

Windows Server 2003 en Windows XP: De Sysnative-alias is toegevoegd vanaf Windows Vista.