Freigeben über


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.

Hinweis

Diese Ressourcen sind möglicherweise nicht in allen Sprachen und Ländern/Regionen verfügbar.