Удаление отражения реестра Windows
Платформа
Клиенты — Windows 7
Серверы — Windows Server 2008 R2
Влияние на функции
Уровень серьезности — низкий
Частота — низкая
Описание
Процесс отражения реестра копирует разделы и значения реестра между двумя представлениями реестра, чтобы обеспечить их синхронизацию. В предыдущих 64-разрядных установках Windows этот процесс отражал подмножество перенаправленных разделов реестра между 32-разрядным и 64-разрядным представлениями. Однако реализация этого метода вызвала некоторые несоответствия в состоянии реестра. (Дополнительные сведения о отражении реестра см. в соответствующей статье MSDN в разделе Ссылки на другие ресурсы ниже.)
Начиная с Windows 7 мы полностью удалили отражение реестра и объединили ключи, которые раньше отражались:
- 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
Фактически это обеспечивает одинаковое поведение отражения, так как изменения этих ключей сразу же доступны как для 32-разрядных, так и для 64-разрядных приложений.
Ключи, которые были отражены условно, остаются разделенными:
- 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
Они используются для хранения данных, которые не должны использоваться совместно между 32-разрядными и 64-разрядными приложениями.
Проявление
Ключи CLSID и Interface из приведенного выше списка больше не отражаются, пока они по-прежнему перенаправляются. Хотя в большинстве случаев это желаемое поведение, возможно, что приложения могут зависеть от отраженного поведения в Vista.
Функции, позволяющие приложениям управлять отражением (RegDisableReflectionKey и RegEnableReflectionKey), в Windows 7 не являются операционными.
Устранение последствий
COM является основным потребителем отражения реестра. Com и другие потребители были обновлены в соответствии с этим изменением. Это изменение не влияет на приложения, использующие стандартные API COM.
Решение
Примените один из следующих вариантов, если для синхронизации 32- и 64-разрядных представлений используется отражение реестра:
Явное создание ключей в обоих представлениях во время установки
Перемещение ключей из область отраженных ключей
Проверка обоих представлений реестра при запросе отраженного раздела
Примечание: KEY_WOW64_32KEY и флаги KEY_WOW64_64KEY не могут быть объединены
Примените один из следующих вариантов, если для отключения отражения реестра используются функции RegDisableReflectionKey.
- Явное создание ключей в обоих представлениях во время установки
- Перемещение ключей из область отраженных ключей
- Использование подразделов для конкретной платформы (например, x86, amd64 и ia64) для разделения данных, относящихся к разрядности.
Ссылки на другие ресурсы
- Статья о отражении реестра
- Список перенаправленных ключей в статье перенаправителя реестра
- Рекомендации для Wow64
Примечание
Эти ресурсы могут быть недоступны на некоторых языках и в странах или регионах.
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по