Condividi tramite


Rimozione della reflection del Registro di sistema di Windows

Piattaforma

Client - Windows 7
Servers - Windows Server 2008 R2

Impatto sulle funzionalità

Gravità - Bassa
Frequenza - Bassa

Descrizione

Il processo di reflection del Registro di sistema copia le chiavi e i valori del Registro di sistema tra due visualizzazioni del Registro di sistema per mantenerle sincronizzate. Nelle installazioni a 64 bit precedenti di Windows, il processo riflette un subset delle chiavi del Registro di sistema reindirizzate tra le visualizzazioni a 32 bit e a 64 bit. Tuttavia, l'implementazione di questo ha causato alcune incoerenze nello stato del Registro di sistema. Per altre informazioni sulla reflection del Registro di sistema, vedere Reflection del Registro di sistema.

A partire da Windows 7, abbiamo rimosso completamente la reflection del Registro di sistema e unito le chiavi usate per essere riflesse:

  • 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

In effetti, fornisce lo stesso comportamento di reflection, poiché le modifiche apportate a queste chiavi sono immediatamente disponibili per le applicazioni a 32 bit e a 64 bit.

Le chiavi riflesse rimangono suddivise in modo condizionale:

  • 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

Vengono usati per mantenere i dati che non devono essere condivisi tra applicazioni a 32 bit e a 64 bit.

Manifestazione

Le chiavi CLSID e Interface dell'elenco precedente non vengono più riflesse mentre sono ancora reindirizzate. Anche se questo è il comportamento desiderato nella maggior parte dei casi, è possibile che le applicazioni possano assumere una dipendenza dal comportamento riflesso in Vista.

Le funzioni che consentono alle applicazioni di controllare la reflection (RegDisableReflectionKey e RegEnableReflectionKey) non sono operazioni in Windows 7.

Mitigazione dell'impatto

COM è il principale consumer di reflection del Registro di sistema. COM e altri consumer sono stati aggiornati per soddisfare questa modifica. Questa modifica non influisce sulle applicazioni che usano API COM standard.

Soluzione

Applicare una delle opzioni seguenti se ci si basa sulla reflection del Registro di sistema per sincronizzare le visualizzazioni a 32 bit e a 64 bit:

  • Creare chiavi in entrambe le visualizzazioni in modo esplicito durante l'installazione

  • Spostare le chiavi dall'ambito delle chiavi riflesse

  • Controllare entrambe le visualizzazioni del Registro di sistema durante l'esecuzione di query per una chiave riflessa

    Nota: non è possibile combinare flag KEY_WOW64_32KEY e KEY_WOW64_64KEY

Applicare una delle opzioni seguenti se ci si basa sulle funzioni RegDisableReflectionKey per disabilitare la reflection del Registro di sistema:

  • Creare chiavi in entrambe le visualizzazioni in modo esplicito durante l'installazione
  • Spostare le chiavi dall'ambito delle chiavi riflesse
  • Usare sottochiavi specifiche della piattaforma (ad esempio x86, amd64 e ia64) per separare i dati specifici della velocità in bit

Nota

Queste risorse potrebbero non essere disponibili in alcune lingue e paesi/aree geografiche.