De in de NtVdm64-sleutel genoemde vervangingsprogramma’s bevinden zich allemaal op de harde schijf/ssd in de map C:\Windows\SysWOW64. Dat is een onderdeel van het 32-bit subsysteem en bevat 32-bit systeembestanden. Daar komt de naam ook vandaan. De eerste drie letters staan voor ‘Systeem’, de rest voor ‘Windows on Windows 64’. Dit is de naam van het 32-bit subsysteem.
SysWOW64 is exclusief bedoeld voor 32-bit programma’s. Die kunnen namelijk niets beginnen met 64-bit systeembestanden. Dus zodra een 32-bit programma toegang probeert te krijgen tot een bestand in de map C:\Windows\System32, schuift Windows in plaats daarvan de 32-bit tegenhanger in C:\Windows\SysWOW64 ertussen (niet alleen bij DLL’s).
Als je je afvraagt of we hier de getallen door elkaar aan het halen zijn, is dat niet zo. De map System32 bevat echt de 64-bit systeembestanden en de map SysWOW64 de 32-bit tegenhangers.
Als gebruiker merk je zelden iets van de omleidingen, maar soms toch wel. Als voorbeeld gebruiken we de freewaretool csdiff 5.0 uit 2005, die bestanden en hele mappen vergelijkt. Als je daarmee de bestanden ‘C:\Windows\System32\notepad.exe’ en ‘C:\Windows\SysWOW64\notepad.exe’ vergelijkt, ziet het programma deze bestanden als identiek, hoewel de verschillende bestandsgroottes duidelijk maken dat ze dat niet zijn.
WOW64 regelt de omleiding zo transparant, dat csdiff je vertelt dat het System32\notepad.exe met SysWOW64\notepad.exe heeft vergeleken, terwijl de tool in feite in beide gevallen dezelfde SysWOW64\notepad.exe te pakken had.
Als je het programma de volledige mappen System32 en SysWOW64 laat vergelijken, kan het resultaat irritant zijn. Het concludeert van hele stapels bestanden dat ze identiek zijn, maar niet de hele map. In plaats daarvan merkt het dat SysWOW64 verschillende bestanden mist die in System32 voorkomen.
De oorzaak hiervan zijn de door Microsoft gedefinieerde uitzonderingen: 32-bit programma’s die System32-submappen catroot, catroot2, driverstore, drivers\etc, logfiles en spool benaderen, leidt Windows niet om, in tegenstelling tot de rest.
Omdat Windows toegangspogingen van 32-bit programma’s naar de map System32 omleidt naar de map SysWOW64, beschouwen dergelijke programma’s beide mappen als identiek, althans grotendeels.
Omleidingsproblemen
De omleiding kan ook op andere plaatsen onverwachte problemen tot gevolg hebben. Als je bijvoorbeeld het hosts-bestand in de map C:\Windows\System32\drivers\etc wilt bewerken met een oude 32-bit teksteditor, mislukt dit omdat je om te beginnen niet eens het bestand kunt zien in het dialoogvenster Openen. Dat komt omdat de map ‘etc’ ontbreekt, want die bestaat in SysWOW64 niet. Overigens maakt het voorbeeld duidelijk dat ook de 32-bit variant van Verkenner wordt beïnvloed door de omleiding; uiteindelijk zijn dialoogvensters voor Openen en Opslaan ook gewoon Verkenner-vensters.
En als je je nu afvraagt of we een stukje terug niet zeiden dat drivers\etc niet werd omgeleid en de toegang tot het hosts-bestand eigenlijk zou moeten werken, dan heb je gelijk, maar dat is hier niet het probleem. Want drivers\etc wordt inderdaad niet omgeleid, maar de map drivers zelf wel. En in de map SysWOW64\drivers staat helemaal geen map met de naam etc.