Entfernen der Windows-Registrierungsreflektion
Plattform
Clients – Windows 7
Server – Windows Server 2008 R2
Auswirkung von Features
Schweregrad - Niedrig
Häufigkeit – Gering
Beschreibung
Der Registrierungsreflektionsprozess kopiert Registrierungsschlüssel und Werte zwischen zwei Registrierungsansichten, um sie synchron zu halten. In früheren 64 Bit-Installationen von Windows spiegelte der Prozess eine Teilmenge der umgeleiteten Registrierungsschlüssel zwischen den 32 Bit- und 64 Bit-Ansichten wider. Diese Implementierung verursachte jedoch einige Inkonsistenzen beim Status der Registrierung. Weitere Informationen zur Registrierungsreflektion finden Sie unter Registrierungsreflektion.
Ab Windows 7 haben wir die Registrierungsreflektion vollständig entfernt und die Schlüssel zusammengeführt, die vorher reflektiert wurden:
- HKEY_LOCAL_MACHINE\Software\Classes
- HKEY_LOCAL_MACHINE\Software\Microsoft\COM3
- HKEY_LOCAL_MACHINE\Software\Microsoft\EventSystem
- HKEY_LOCAL_MACHINE\Software\Microsoft\Ole
- HKEY_LOCAL_MACHINE\Software\Microsoft\Rpc
- HKEY_USERS\*\Software\Classes
- HKEY_USERS\*_Classes
Dies führt effektiv zum gleichen Reflektionsverhalten, da Änderungen an diesen Schlüsseln sofort für 32 Bit- und 64 Bit-Anwendungen verfügbar sind.
Die Schlüssel, die bedingt reflektiert wurden, bleiben geteilt:
- HKEY_LOCAL_MACHINE\Software\Classes\CLSID
- HKEY_LOCAL_MACHINE\Software\Classes\Interface
- HKEY_USERS\*\Software\Classes\CLSID
- HKEY_USERS\*\Software\Classes\Interface
- HKEY_USERS\*_Classes\CLSID
- HKEY_USERS\*_Classes\Interface
Sie werden verwendet, um die Daten beizubehalten, die nicht für 32 Bit- und 64 Bit-Anwendungen gemeinsam genutzt werden sollen.
Manifest
CLSID- und Interface-Schlüssel aus der obigen Liste werden nicht mehr reflektiert, aber weiterhin umgeleitet. Obwohl dies in den meisten Fällen das erwünschte Verhalten ist, ist es möglich, dass Anwendungen von ihrem reflektierten Verhalten unter Vista abhängig werden können.
Die Funktionen, mit denen Anwendungen die Reflektion steuern können (RegDisableReflectionKey und RegEnableReflectionKey) sind unter Windows 7 No-ops.
Beheben von Auswirkungen
COM ist der wichtigste Nutzer der Registrierungsreflektion. COM und andere Nutzer wurden aktualisiert, um diese Änderung zu berücksichtigen. Diese Änderung wirkt sich nicht auf Anwendungen aus, die standardmäßige COM-APIs verwenden.
Lösung
Wenden Sie eine der folgenden Optionen an, wenn Sie sich auf die Registrierungsreflektion stützen, um 32 Bit- und 64 Bit-Ansichten zu synchronisieren:
Erstellen Sie explizit Schlüssel in beiden Ansichten während der Installation
Verschieben Sie die Schlüssel aus dem Bereich der reflektierten Schlüssel heraus
Prüfen Sie beide Ansichten der Registrierung beim Abfragen nach einem reflektierten Schlüssel
Hinweis: Die Flags KEY_WOW64_32KEY und KEY_WOW64_64KEY können nicht kombiniert werden
Wenden Sie eine der folgenden Optionen an, wenn Sie sich auf RegDisableReflectionKey-Funktionen stützen, um die Registrierungsreflektion zu deaktivieren:
- Erstellen Sie explizit Schlüssel in beiden Ansichten während der Installation
- Verschieben Sie die Schlüssel aus dem Bereich der reflektierten Schlüssel heraus
- Verwenden sie plattformspezifische Unterschlüssel (z. B. x86, amd64 und ia64), um bitspezifische Daten zu trennen.
Links zu anderen Ressourcen
- Artikel zur Registrierungsreflektion
- Liste der umgeleiteten Schlüsseln im Artikel zur Registrierungsumleitung
- Bewährte Methoden für Wow64
Hinweis
Diese Ressourcen sind möglicherweise nicht in allen Sprachen und Ländern/Regionen verfügbar.