Registerändringar i x64-baserade versioner av Windows

Den här artikeln beskriver några av de registerändringar som har gjorts i x64-baserade versioner av Microsoft Windows Server 2003 och Microsoft Windows XP Professional x64 Edition. Den beskriver hur operativsystemet Windows x64 Edition lagrar registerinformation för 32-bitarsprogram och 64-bitarsprogram.

Gäller för: Windows 10 – alla utgåvor, Windows Server 2012 R2
Ursprungligt KB-nummer: 896459

Sammanfattning

Viktigt

Det här avsnittet, metoden eller uppgiften innehåller steg som beskriver hur du ändrar registret. Det kan uppstå allvarliga problem om du gör detta felaktigt. Följ därför instruktionerna noga, och säkerhetskopiera registret innan du gör några ändringar i det. Då kan du återställa registret om det uppstår problem. Om du vill ha mer information om hur du säkerhetskopierar och återställer registret klickar du på följande artikelnummer för att visa artikeln i Microsoft Knowledge Base: 322756 Säkerhetskopiera och återställa registret i Windows

Datorer som kör en x64-baserad version av Microsoft Windows Server 2003 eller Microsoft Windows XP Professional x64 Edition använder en annan registerlayout för att hantera både 32- och 64-bitarsprogram. Ändringar i registerlayouten i x64 Edition-versioner av Windows-operativsystemet kontrollerar att programmen som är hårdkodade .dll sökvägar, programinställningar och andra parametervärden inte skrivs över.

För att förhindra att 32-bitars registerinställningar skriver över 64-bitars registerinställningarna, datorer som kör en x64-baserad version av Microsoft Store inställningarna för 32-bitarsprogram i en ny gren i registret. Användarna märker inga ändringar under programinstallationen. Omdirigeringsprocessen för registret gör det möjligt för programinstallationer och programkonfigurationsinställningar att komma åt rätt registerundernyckel utan att användaren behöver göra något.

32-bitarsprogram och 64-bitarsprogram som körs på en x64-baserad version av Windows fungerar i olika lägen och använder följande avsnitt i registret:

  • 64-bitarsprogram i inbyggt läge körs i internt läge och åtkomstnycklar och värden som lagras i följande registerundernyckel:

    HKEY_LOCAL_MACHINE\Software

  • 32-bitarsprogram körs i WOW64-läge och åtkomstnycklar och värden som lagras i följande registerundernyckel:

    HKEY_LOCAL_MACHINE\Software\WOW6432node

Omdirigering av register

För att stödja samexistensen mellan 32-bitars och 64-bitars COM-registrering och programtillstånd presenterar WOW64-undersystemet 32-bitarsprogram med hjälp av en annan vy av registret. UNDERsystemet WOW64 använder registeromdirigering för att avlyssna registeranrop på bitnivå. Registeromdirigering ser också till att registeranropen dirigeras till rätt grenar i registret.

När du installerar ett nytt program eller när du kör ett program på en Windows x64 Edition-dator får registeranrop som görs av 64-bitarsprogram åtkomst till registerundernyckeln HKEY_LOCAL_MACHINE\Software utan omdirigering. WOW64 fångar upp registeranrop till HKEY_LOCAL_MACHINE\Software som görs av 32-bitarsprogram och omdirigerar dem sedan till undernyckeln HKEY_LOCAL_MACHINE\Software\WOW6432node . Genom att endast omdirigera 32-bitarsprogramanropen ser WOW64 till att programmen alltid skriver till lämplig registerundernyckel. Omdirigering av registret kräver inte programkodändring och den här processen är transparent för användaren.

Registerundernycklar som ingår i omdirigering

Följande registerundernycklar omdirigeras i aktuella versioner av operativsystemet Windows x64 Edition:

  • HKEY_LOCAL_MACHINE\Software\Classes
  • HKEY_LOCAL_MACHINE\Software\Microsoft\Ole
  • HKEY_LOCAL_MACHINE\Software\Microsoft\Rpc
  • HKEY_LOCAL_MACHINE\Software\Microsoft\COM3
  • HKEY_LOCAL_MACHINE\Software\Microsoft\EventSystem

Viktigt

Omdirigering av registernyckel kan ändras i senare versioner av operativsystemet. Programvaruutvecklare uppmuntras att undvika att skriva programkod som baseras på tidigare dokumenterade listor med omdirigerade nycklar. I stället bör kod skrivas för att verifiera omdirigeringsstatus innan den anropar 32-bitars eller 64-bitars logiska vyn i registret.

Registerreflektion

Registerreflektion ger en realtidsmetod för att hålla 32-bitars- och 64-bitarsavsnitten i registret öppna hela tiden. Tänk dig till exempel ett 32-bitarsprogram med namnet Hello.exe som fungerar som en 32-bitars OLE-server, men som också kan hantera begäranden från 64-bitarsklienter. Registerreflektion gör det möjligt för Hello.exe program att hålla både 32-bitarsregistret och 64-bitarsregistret öppna för att hantera både 32-bitars- och 64-bitarsprogramanrop.

Reflektion gör det möjligt att det finns två fysiska kopior av samma register för att stödja samtidiga interna åtgärder och WOW64-åtgärder. De flesta av nycklarna som återspeglas är klassnycklar. Klassnycklar skrivs med filosofin "senaste skrivaren vinner" och handtaget till nyckeln stängs när antingen 32-bitars- eller 64-bitars klassnyckeln skrivs och stängs.

Följande lista innehåller några exempel på filosofin "senaste författaren vinner":

  • När du har installerat operativsystemet Windows x64 Edition är 64-bitarsversionen av Wordpad.exe registrerad för att hantera .doc filer. Registerreflektorn kopierar .doc registrering från 64-bitars registeravsnittet till 32-bitars registeravsnittet.
  • När du installerar en 32-bitarsversion av Microsoft Office registreras Winword.exe för att hantera .doc filer i 32-bitars registervyn. Registerreflektorn kopierar den här informationen till 64-bitarsregistret. Därför startar både 32-bitars- och 64-bitarsprogram 32-bitarsversionen av Winword.exe för .doc-filer.
  • När du installerar 64-bitarsversionen av Microsoft Office registreras 64-bitarsversionen av Winword.exe i 64-bitarsregistret för att hantera .doc filer. Registerreflektorn kopierar också den här informationen till 32-bitars registeravsnittet så att både 32-bitars- och 64-bitarsprogram startar 64-bitarsversionen av Winword.exe för .doc filer.

Obs!

Utvecklare kan använda funktionen RegQueryReflectionKey för att fastställa reflektionstillståndet för en viss nyckel och använda funktionen RegDisableReflectionKey och funktionen RegEnableReflectionKey för att programmässigt inaktivera och aktivera registerreflektion för en viss nyckel.

Delade registernycklar

Vissa registerundernycklar innehåller konstant information som bara finns i en kopia av registret, även om dessa nycklar visas i både 32-bitars- och 64-bitars registervyerna. Detta kallas registerreflektion.

I aktuella versioner av operativsystemet Windows x64 Edition delas följande registerundernycklar mellan 32-bitars- och 64-bitarsprogrammet och skrivs inte om baserat på 32- eller 64-bitarsnivån i programmet eller processen:

  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\SYSTEMCERTIFICATES
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\CRYPTOGRAPHY\SERVICES
  • HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES\HCP
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\ENTERPRISECERTIFICATES
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\MSMQ
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS NT\CURRENTVERSION\NETWORKCARDS
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS NT\CURRENTVERSION\PROFILELIST
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS NT\CURRENTVERSION\PERFLIB
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS NT\CURRENTVERSION\PRINT
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS NT\CURRENTVERSION\PORTS
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\CONTROL PANEL\CURSORS\SCHEMES
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\TELEPHONY\LOCATIONS
  • HKEY_LOCAL_MACHINE\SOFTWARE\POLICIES
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\GROUP POLICY
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\POLICIES
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\SETUP\OC MANAGER
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\SOFTWARE\MICROSOFT\SHARED TOOLS\MSINFO
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\SETUP
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\CTF\TIP
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\CTF\SYSTEMSHARED
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS NT\CURRENTVERSION\FONTS
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS NT\CURRENTVERSION\FONTSUBSTITUTES
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS NT\CURRENTVERSION\FONTDPI
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS NT\CURRENTVERSION\FONTMAPPER
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\RAS
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\DRIVER SIGNING
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\NON-DRIVER SIGNING
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\CRYPTOGRAPHY\CALAIS\CURRENT
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\CRYPTOGRAPHY\CALAIS\READERS
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS NT\CURRENTVERSION\TIME ZONE
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\TRANSACTION SERVER
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\DFS
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\TERMSERVLICENSING

Viktigt

Registernyckelreflektion kan ändras i senare versioner av operativsystemet. Programvaruutvecklare uppmuntras att undvika att skriva programkod som baseras på tidigare dokumenterade listor med reflekterade nycklar. I stället ska kod skrivas för att verifiera reflektionsstatus innan programmet gör anrop till 32-bitars eller 64-bitars logiska vyn i registret.

Ändringar i register Editor

Både 32-bitars- och 64-bitarsversioner av Registry Editor ingår i operativsystemen x64 Edition. Använd någon av följande metoder för att bättre förstå 64-bitars- och 32-bitarsprogramavsnitten i registret på en Windows x64 Edition-dator.

Starta 64-bitarsversionen av Registry Editor

  1. Logga in på Windows x64 Edition-datorn med hjälp av ett konto som har administratörsbehörighet.
  2. Klicka på Start, sedan på Kör, skriv regedit i rutan Öppna och klicka på OK.
  3. Leta upp och granska följande registerundernyckel i Registry Editor:HKEY_LOCAL_MACHINE\Software\WOW6432node

Starta 32-bitarsversionen av Registry Editor

Klicka på Start, klicka på Kör, skriv enhetsbeteckning där du installerade Windows x64 Edition\Windows\syswow64\regedit.exe m i rutan Öppna och klicka sedan på OK. Med växeln m kan du köra flera instanser av Registry Editor.

Obs!

När du loggar in på en Microsoft Windows Server 2003 Service Pack 1 (SP1) eller senare dator eller en Windows x64 Edition-baserad dator och du använder Remote Desktop Protocol (RDP) för att ansluta till en annan Windows Server 2003 SP1 eller senare baserad dator eller Windows x64 Edition-baserad dator, kan du visa 64-bitarsavsnittet i registret på fjärrdatorn. Men när du loggar in på Microsoft Windows Server 2003-datorn som inte har uppgraderats till SP1 eller något annat 32-bitars Windows-operativsystem kan du bara visa 32-bitarsavsnittet i registret på fjärrdatorn.

Teknisk support för x64-baserade versioner av Windows

Om maskinvaran har en Windows x64-version som redan är installerad tillhandahåller maskinvarutillverkaren teknisk support och hjälp för Windows x64-utgåvan. I det här fallet tillhandahåller maskinvarutillverkaren support eftersom en Windows x64-version ingick i maskinvaran. Maskinvarutillverkaren kan ha anpassat installationen av Windows x64-versionen med hjälp av unika komponenter. Unika komponenter kan innehålla specifika enhetsdrivrutiner eller inkludera valfria inställningar för att maximera maskinvarans prestanda. Microsoft tillhandahåller rimlig hjälp om du måste ha teknisk hjälp med en Windows x64-utgåva. Du kan dock behöva kontakta tillverkaren direkt. Tillverkaren är bäst lämpad att stödja den programvara som tillverkaren har installerat på maskinvaran. Om du har köpt en Windows x64-utgåva, till exempel en Windows Server 2003 x64-utgåva separat, kontaktar du Microsoft för teknisk support.