A beállításjegyzék tükröződése
[A jelen témakörben szereplő információk a Windows Server 2008, a Windows Vista, a Windows Server 2003 és a Windows XP rendszerre vonatkoznak. A Windows 7-től és a Windows Server 2008 R2-től kezdve a WOW64 már nem használja a beállításjegyzék tükröződését, és a korábban tükrözött kulcsok meg vannak osztva. További információ: WOW64 által érintett beállításkulcsok.]
A beállításjegyzék-átirányító elkülöníti a 32 bites és a 64 bites alkalmazásokat azáltal, hogy külön logikai nézeteket biztosít a beállításjegyzék bizonyos részeiről a WOW64-en. Egyes beállításkulcsok értékeinek azonban a 32 bites és a 64 bites nézetekben is azonosnak kell lenniük.
A beállításjegyzék-tükrözés folyamata, a beállításkulcsokat és az értékeket két beállításjegyzék-nézet között másolja, hogy azok szinkronizálva maradjanak. Minden nézetnek külön fizikai másolata van az egyes tükrözött beállításkulcsról, az egyik a 32 bites beállításjegyzék nézethez, a másik pedig a 64 bites beállításjegyzék nézethez.
A visszavert kulcsokat a rendszer RegCloseKeymeghívásával másolja a kulcs bezárásakor. Vegye figyelembe, hogy ez egy lehetséges versenyfeltételhez vezet: ha egynél több folyamat módosítja a tükrözött kulcsot, az utolsó RegCloseKey hívás határozza meg a kulcs végső értékét.
A tükröző a helyi kiszolgálók COM-aktiválási adatait másolja a nézetek közé, de nem másolja a folyamaton belüli adatokat, mert a 64 bites Windows rendszeren a 32/64 folyamaton belüli adatkeverés nem engedélyezett.
A tükrözés nincs engedélyezve a megosztott beállításkulcsok és a nem átirányított beállításkulcsok esetében. A tükrözés például nincs engedélyezve a HKEY_LOCAL_MACHINE\System kulcshoz. Az átirányított, megosztott vagy tükrözött beállításkulcsok listáját a WOW64 által érintett beállításkulcsokcímű témakörben találja.
A beállításjegyzék-tükrözés egy "utolsó író nyer" szabályzatot használ az alábbi példában látható módon:
- A 64 bites Windows tiszta telepítése után a rendszer regisztrálja a 64 bites Wordpad.exe .doc fájlok kezelésére. A reflektor a .doc regisztrációt a 64 bites beállításjegyzék nézetből a 32 bites beállításjegyzék nézetbe másolja.
- A rendszergazda telepíti a 32 bites Office-t, amely 32 bites Winword.exe regisztrál .doc fájlok kezeléséhez a 32 bites beállításjegyzék nézetben. A beállításjegyzék-tükröző ezeket az adatokat a 64 bites beállításjegyzék nézetbe másolja, így a 32 bites és a 64 bites alkalmazások is elindítják a Winword.exe 32 bites verzióját .doc fájlokhoz.
- A rendszergazda telepíti a 64 bites Office-t, amely 64 bites Winword.exe regisztrál a .doc fájlok kezeléséhez a 64 bites beállításjegyzék nézetben. A beállításjegyzék-tükröző ezeket az adatokat a 32 bites beállításjegyzékbe másolja, így a 32 bites és a 64 bites alkalmazások is elindítják a Winword.exe 64 bites verzióját .doc fájlokhoz.
Ezért a fájltársítás adatai megmaradnak a legutóbb telepített alkalmazáshoz.
A 32 bites és a 64 bites alkalmazások esetében hasznos lehet olyan beállításkulcs-értékek megosztása, amelyek általában külön beállításjegyzék-nézetekbe vannak írva. Például egy 32 bites OLE-kiszolgáló, amely 32 bites és 64 bites ügyfelektől érkező kéréseket is kiszolgálhat, elérhetővé teheti a 32 bites beállításjegyzék adatait a rendszerregisztrációs adatbázis 64 bites nézetében.
Amikor egy összetevő adatokat ír a rendszerregisztrációs adatbázisba, a WOW64 elemzi az adatokat, és szükség esetén másolatot készít az adatokról a beállításjegyzék alternatív nézetében. Ez a folyamat általában ugyanazon beállításkulcsok két különálló fizikai másolatát tárolja a beállításjegyzék mindkét nézetében, és ezt nevezik beállításjegyzék-tükrözésnek vagy beállításjegyzék-tükrözésnek.
Az osztályok gyökerében található kulcsok többsége ebben a kategóriában található. A kulcsok frissítései akkor jelennek meg, amikor a frissítés befejeződik, és a kulcshoz való fogópont bezárul. Bizonyos esetekben a kulcsra való írás nem jelenik meg, ha a kulcs bitness függőséget tartalmaz. A 32 bites InprocServer32 kulcs például nem releváns a 64 bites alkalmazások esetében, ezért az InprocServer32 kulcs nem jelenik meg a 64 bites beállításjegyzék nézetében. A 64 bites alkalmazások azonban használhatják a 32 bites LocalServer32 kulcsot, és a LocalServer32 kulcs megjelenik.
Az HKEY_LOCAL_MACHINE\Software\Classes\CLSID és HKEY_CURRENT_USER\Software\Classes\CLSIDcsak az InprocServer32 vagy az InprocHandler32 értéket nem meghatározó CLSID-k jelennek meg. Csak a LocalServer32 CLSID-k jelennek meg, mert elfogytak a folyamatból, és 32 vagy 64 bites alkalmazásokkal aktiválhatók. Az InProcServer32 CLSID-k nem jelennek meg, mert 32 bites DLL-t nem lehet betölteni egy 64 bites folyamat végrehajtásához, vagy egy 64 bites DLL-t egy 32 bites folyamat végrehajtásához.
HKEY_LOCAL_MACHINE\Software\Classes\Appid és HKEY_CURRENT_USER\Software\Classes\Appidesetében a DllSurrogate és DllSurrogateExecutable beállításjegyzék-értékek nem jelennek meg, ha az értékük üres sztring.
Ha le szeretné tiltani és engedélyezni szeretné a beállításjegyzék tükrözését egy adott tükrözött kulcs esetében, használja a RegDisableReflectionKey és RegEnableReflectionKey függvényeket. Ezek a függvények nem befolyásolják azokat a kulcsokat, amelyek nem szerepelnek a jelen témakör korábbi, tükrözött kulcsainak listáján. Az alkalmazások csak az általuk létrehozott beállításkulcsok tükrözését tilthatják le, és nem kísérlik meg letiltani az előre definiált kulcsok, például HKEY_LOCAL_MACHINE vagy HKEY_CURRENT_USERtükrözését. Annak megállapításához, hogy a tükrözési lista kulcsai le lettek-e tiltva, használja a RegQueryReflectionKey függvényt.
A tükrözött kulcsok nem használhatók a tranzakciós beállításjegyzék-műveletekben. A tranzakció során a tükrözött kulcsok írása a tranzakció meghiúsulását okozhatja. További információ a tranzakciókról: Kernel Transaction Manager.
Kapcsolódó témakörök
-
WOW64 által érintett beállításkulcsok