Compartilhar via


Remoção da reflexão do registro do Windows

Plataforma

Clientes - Windows 7
Servidores - Windows Server 2008 R2

Impacto do recurso

Gravidade - Baixa
Frequência - Baixa

Descrição

O processo de reflexão do registro copia chaves e valores do registro entre duas visualizações do registro para mantê-los sincronizados. Em instalações anteriores de 64 bits do Windows, o processo refletia um subconjunto das chaves de registro redirecionadas entre as visualizações de 32 e 64 bits. No entanto, a implementação disso causou algumas inconsistências no estado do registro. Para obter mais detalhes sobre a reflexão do registro, consulte Reflexão do Registro.

A partir do Windows 7, removemos completamente a reflexão do registro e mesclamos as chaves que geralmente eram refletidas:

  • 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

Efetivamente, isso fornece o mesmo comportamento de reflexão, já que as alterações nessas chaves ficam imediatamente disponíveis para aplicativos de 32 e 64 bits.

As chaves que foram refletidas condicionalmente permanecem divididas:

  • 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

Elas são usadas para manter os dados que não devem ser compartilhados entre aplicativos de 32 e 64 bits.

Manifestação

As chaves CLSID e Interface da lista acima não são mais refletidas enquanto ainda são redirecionadas. Embora esse seja o comportamento desejado na maioria dos casos, é possível que os aplicativos possam ter uma dependência de seu comportamento refletido no Vista.

As funções que permitem que os aplicativos controlem a reflexão (RegDisableReflectionKey e RegEnableReflectionKey) não são operacionais no Windows 7.

Mitigação de impacto

COM é o principal consumidor de reflexão de registro. COM e outros consumidores foram atualizados para acomodar essa mudança. Essa alteração não afeta os aplicativos que usam APIs COM padrão.

Solução

Aplique uma das seguintes opções se estiver contando com a reflexão do registro para sincronizar visualizações de 32 bits e 64 bits:

  • Criar chaves nas duas visualizações explicitamente durante a instalação

  • Mover as chaves para fora do escopo das chaves refletidas

  • Verificar as duas visualizações do registro ao consultar uma chave refletida

    Observação: os sinalizadores KEY_WOW64_32KEY e KEY_WOW64_64KEY não podem ser combinados

Aplique uma das seguintes opções se estiver contando com as funções RegDisableReflectionKey para desabilitar a reflexão do registro:

  • Criar chaves nas duas visualizações explicitamente durante a instalação
  • Mover as chaves para fora do escopo das chaves refletidas
  • Use subchaves específicas da plataforma (como x86, amd64 e ia64) para separar dados específicos de bits

Observação

Esses recursos podem não estar disponíveis em alguns idiomas e países/regiões.