Изменения реестра в 64-разрядных версиях Windows

В этой статье описываются некоторые изменения реестра, внесенные в 64-разрядных версиях Microsoft Windows Server 2003 и Microsoft Windows XP Professional x64 Edition. В ней описывается, как операционная система Windows x64 Edition хранит сведения о реестре для 32-разрядных и 64-разрядных программ.

Область применения: Windows 10 — все выпуски, Windows Server 2012 R2
Исходный номер базы знаний: 896459

Сводка

Важно!

В этот раздел, описание метода или задачи включены действия, содержащие указания по изменению параметров реестра. Однако неправильное изменение параметров реестра может привести к возникновению серьезных проблем. Поэтому следует в точности выполнять приведенные инструкции. Для дополнительной защиты создайте резервную копию реестра, прежде чем редактировать его. Так вы сможете восстановить реестр, если возникнет проблема. Дополнительные сведения о резервном копировании и восстановлении реестра см. в следующем номере статьи базы знаний Майкрософт: 322756 Резервное копирование и восстановление реестра в Windows

Компьютеры под управлением 64-разрядной версии Microsoft Windows Server 2003 или Microsoft Windows XP Professional x64 Edition используют другой макет реестра для обработки как 32-разрядных, так и 64-разрядных программ. Изменение макета реестра в версиях операционной системы Windows x64 Edition гарантирует, что программы, жестко закодированные .dll пути, параметры программы и другие значения параметров, не перезаписаны.

Чтобы предотвратить перезапись 64-разрядных параметров реестра в 32-разрядной версии реестра, на компьютерах под управлением 64-разрядной версии Microsoft Store используются параметры для 32-разрядных программ в новой ветви реестра. Пользователи не замечают никаких изменений во время установки программы. Процесс перенаправления реестра позволяет установкам программ и параметрам конфигурации программ получать доступ к правильному подразделу реестра без вмешательства пользователя.

32-разрядные и 64-разрядные программы, работающие в 64-разрядной версии Windows, работают в разных режимах и используют следующие разделы в реестре:

  • 64-разрядные программы в собственном режиме выполняются в собственном режиме и получают доступ к ключам и значениям, которые хранятся в следующем подразделе реестра:

    HKEY_LOCAL_MACHINE\Software

  • 32-разрядные программы выполняются в режиме WOW64, а также ключи доступа и значения, которые хранятся в следующем подразделе реестра:

    HKEY_LOCAL_MACHINE\Software\WOW6432node

Перенаправление реестра

Для поддержки сосуществования 32-разрядных и 64-разрядных состояний COM и состояний программ подсистема WOW64 представляет 32-разрядные программы с помощью другого представления реестра. Подсистема WOW64 использует перенаправление реестра для перехвата вызовов реестра на битовом уровне. Перенаправление реестра также гарантирует, что вызовы реестра направляются в правильные ветви реестра.

При установке новой программы или при запуске программы на компьютере с Windows x64 Edition вызовы реестра, выполняемые 64-разрядными программами, получают доступ к подразделу HKEY_LOCAL_MACHINE\Software реестра без перенаправления. WOW64 перехватывает вызовы реестра, HKEY_LOCAL_MACHINE\Software выполняемые 32-разрядными программами, а затем перенаправляет их в HKEY_LOCAL_MACHINE\Software\WOW6432node подраздел. Перенаправляя только вызовы 32-разрядной программы, WOW64 гарантирует, что программы всегда записывают данные в соответствующий подраздел реестра. Перенаправление реестра не требует изменения кода программы, и этот процесс является прозрачным для пользователя.

Подразделы реестра, включенные в перенаправление

Следующие подразделы реестра перенаправляются в текущих версиях операционной системы Windows x64 Edition:

  • HKEY_LOCAL_MACHINE\Software\Classes
  • HKEY_LOCAL_MACHINE\Software\Microsoft\Ole
  • HKEY_LOCAL_MACHINE\Software\Microsoft\Rpc
  • HKEY_LOCAL_MACHINE\Software\Microsoft\COM3
  • HKEY_LOCAL_MACHINE\Software\Microsoft\EventSystem

Важно!

Перенаправление разделов реестра может измениться в более поздних версиях операционной системы. Разработчикам программного обеспечения рекомендуется избегать написания программного кода, основанного на ранее документированных списках перенаправленных ключей. Вместо этого необходимо написать код для проверки состояния перенаправления перед вызовами 32-разрядного или 64-разрядного логического представления реестра.

Отражение реестра

Отражение реестра предоставляет метод в режиме реального времени для постоянного открытия 32-разрядных и 64-разрядных разделов реестра. Например, рассмотрим 32-разрядную программу с именем Hello.exe, которая выступает в качестве 32-разрядного сервера OLE, но также может обслуживать запросы от 64-разрядных клиентов. Отражение реестра позволяет программе Hello.exe держать 32-разрядный и 64-разрядный реестр открытыми для обработки вызовов как 32-разрядных, так и 64-разрядных программ.

Отражение делает возможным наличие двух физических копий одного реестра для поддержки одновременных собственных операций и операций WOW64. Большинство ключей, которые отражаются, являются ключами классов. Ключи классов пишутся с философией "последний модуль побеждает", а дескриптор ключа закрывается при записи и закрытии 32-разрядного или 64-разрядного ключа класса.

В следующем списке приведены некоторые примеры философии "последний автор побеждает":

  • После чистой установки операционной системы Windows x64 Edition 64-разрядная версия Wordpad.exe регистрируется для обработки .doc файлов. Рефлектор реестра копирует регистрацию .doc из раздела 64-разрядного реестра в 32-разрядный раздел реестра.
  • При установке 32-разрядной версии Microsoft Office Winword.exe регистрируется для обработки .doc файлов в 32-разрядном представлении реестра. Отражатель реестра копирует эти сведения в раздел 64-разрядного реестра. Поэтому 32-разрядная и 64-разрядная программы запускают 32-разрядную версию Winword.exe для .doc файлов.
  • При установке 64-разрядной версии Microsoft Office 64-разрядная версия Winword.exe регистрируется в разделе 64-разрядного реестра для обработки .doc файлов. Рефлектор реестра также копирует эти сведения в раздел 32-разрядного реестра, чтобы 32-разрядная и 64-разрядная программы запускали 64-разрядную версию Winword.exe для .doc файлов.

Примечание.

Разработчики могут использовать функцию RegQueryReflectionKey для определения состояния отражения для определенного ключа, а также функцию RegDisableReflectionKey и regEnableReflectionKey для программного отключения и включения отражения реестра для определенного ключа.

Общие разделы реестра

Некоторые подразделы реестра содержат константную информацию, которая существует только в одной копии реестра, даже если эти разделы отображаются в 32-разрядном и 64-разрядном представлениях реестра. Это называется отражением реестра.

В текущих версиях операционных систем Windows x64 Edition следующие подразделы реестра совместно используются в 32-разрядных и 64-разрядных программах и не переписываются на основе 32-разрядного или 64-разрядного уровня программы или процесса:

  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\SYSTEMCERTIFICATES
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\CRYPTOGRAPHY\SERVICES
  • HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES\HCP
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\ENTERPRISECERTIFICATES
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\MSMQ
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS NT\CURRENTVERSION\NETWORKCARDS
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS NT\CURRENTVERSION\PROFILELIST
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS NT\CURRENTVERSION\PERFLIB
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS NT\CURRENTVERSION\PRINT
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS NT\CURRENTVERSION\PORTS
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\CONTROL PANEL\CURSORS\SCHEMES
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\TELEPHONY\LOCATIONS
  • HKEY_LOCAL_MACHINE\SOFTWARE\POLICIES
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\GROUP POLICY
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\POLICIES
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\SETUP\OC MANAGER
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\SOFTWARE\MICROSOFT\SHARED TOOLS\MSINFO
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\SETUP
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\CTF\TIP
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\CTF\SYSTEMSHARED
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS NT\CURRENTVERSION\FONTS
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS NT\CURRENTVERSION\FONTSUBSTITUTES
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS NT\CURRENTVERSION\FONTDPI
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS NT\CURRENTVERSION\FONTMAPPER
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\RAS
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\DRIVER SIGNING
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\NON-DRIVER SIGNING
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\CRYPTOGRAPHY\CALAIS\CURRENT
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\CRYPTOGRAPHY\CALAIS\READERS
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS NT\CURRENTVERSION\TIME ZONE
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\TRANSACTION SERVER
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\DFS
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\TERMSERVLICENSING

Важно!

Отражение раздела реестра может измениться в более поздних версиях операционной системы. Разработчикам программного обеспечения рекомендуется избегать написания программного кода, основанного на ранее документированных списках отраженных ключей. Вместо этого необходимо написать код для проверки состояния отражения, прежде чем программа будет выполнять вызовы 32-разрядного или 64-разрядного логического представления реестра.

Изменения Редактор реестра

32- и 64-разрядные версии Редактор реестра входят в состав операционных систем x64 Edition. Чтобы лучше разобраться в разделах 64-разрядных и 32-разрядных программ реестра на компьютере с Windows x64 Edition, используйте один из следующих методов.

Запуск 64-разрядной версии реестра Редактор

  1. Войдите на компьютер Windows x64 Edition с помощью учетной записи с правами администратора.
  2. Нажмите кнопку Пуск, выберите команду Выполнить, в поле Открыть введите regedit и нажмите кнопку ОК.
  3. В Редактор реестра найдите и изучите следующий подраздел реестра:HKEY_LOCAL_MACHINE\Software\WOW6432node

Запуск 32-разрядной версии реестра Редактор

Нажмите кнопку Пуск, нажмите кнопку Выполнить, введите букву диска, на котором установлена windows x64 Edition\Windows\syswow64\regedit.exe m в поле Открыть , а затем нажмите кнопку ОК. Параметр m позволяет запускать несколько экземпляров Редактор реестра.

Примечание.

При входе на компьютер с Microsoft Windows Server 2003 с пакетом обновления 1 (SP1) или более поздней версии или windows x64 Edition и используете протокол удаленного рабочего стола (RDP) для подключения к другому компьютеру под управлением Windows Server 2003 с пакетом обновления 1 (SP1) или более поздней версии или компьютеру под управлением Windows x64 Edition, вы можете просмотреть 64-разрядный раздел реестра на удаленном компьютере. Однако при входе на компьютер с Microsoft Windows Server 2003, который не был обновлен до пакета обновления 1 (SP1) или любой другой 32-разрядной операционной системы Windows, вы можете просматривать только 32-разрядный раздел реестра на удаленном компьютере.

Техническая поддержка для 64-разрядных версий Windows

Если ваше оборудование поставляется с уже установленным выпуском Windows x64, производитель оборудования предоставляет техническую поддержку и помощь для выпуска Windows x64. Поскольку 64-разрядный выпуск Windows входил в комплект поставки данного оборудования, обязанности по предоставлению технической поддержки несет изготовитель оборудования. Изготовитель оборудования может устанавливать 64-разрядную версию Windows с собственными компонентами. например специальными драйверами устройств, и использовать дополнительные настройки параметров для повышения производительности оборудования. Корпорация Майкрософт предоставит необходимую помощь, если требуется техническая помощь с выпуском Windows x64. Однако в первую очередь следует обращаться непосредственно к изготовителю оборудования. Изготовитель обладает наилучшими возможностями по поддержке установленного им программного обеспечения. Если вы приобрели выпуск Windows x64, например Windows Server 2003 x64, отдельно, обратитесь в корпорацию Майкрософт за технической поддержкой.