- Общие сведения об исправлениях совместимости и их использовании Understanding and Using Compatibility Fixes
- Принцип работы инфраструктуры исправления совместимости How the Compatibility Fix Infrastructure Works
- Влияние инфраструктуры исправления совместимости на проектирование Design Implications of the Compatibility Fix Infrastructure
- Определение того, когда следует использовать исправление совместимости Determining When to Use a Compatibility Fix
- Сценарий 1 Scenario 1
- Сценарий 2 Scenario 2
- Сценарий 3 Scenario 3
- Определение версии приложения для исправления Determining Which Version of an Application to Fix
- Поддержка проблем совместимости Support for Compatibility Fixes
- Настройка совместимости старых приложений или программ с Windows 10
- Параметры режима совместимости
Общие сведения об исправлениях совместимости и их использовании Understanding and Using Compatibility Fixes
Область применения Applies to
- Windows 10 Windows 10
- Windows 8.1 Windows 8.1
- Windows 8 Windows 8
- Windows7 Windows 7
- Windows Server 2012 Windows Server 2012
- Windows Server2008R2 Windows Server 2008 R2
По мере развития операционной системы Windows поддержки новых технологий и функций может измениться реализация некоторых функций. As the Windows operating system evolves to support new technology and functionality, the implementations of some functions may change. Это может привести к проблемам с приложениями, которые основываются на исходной реализации. This can cause problems for applications that relied upon the original implementation. Вы можете избежать проблем с совместимостью с помощью инфраструктуры совместимости приложений Microsoft Windows (исправление совместимости) для создания исправления для определенной версии приложения. You can avoid compatibility issues by using the Microsoft Windows Application Compatibility (Compatibility Fix) infrastructure to create a specific application fix for a particular version of an application.
Принцип работы инфраструктуры исправления совместимости How the Compatibility Fix Infrastructure Works
Инфраструктура исправления совместимости использует возможности связывания API для перенаправления приложения из кода Windows непосредственно в альтернативный код, реализующий исправление совместимости. The Compatibility Fix infrastructure uses the linking ability of APIs to redirect an application from Windows code directly to alternative code that implements the compatibility fix.
В формате переносимого исполняемого файла Windows есть заголовки, содержащие каталоги данных, которые используются для обеспечения уровня косвенного переключения между приложением и связанным файлом. The Windows Portable Executable File Format includes headers that contain the data directories that are used to provide a layer of indirection between the application and the linked file. Вызовы API внешних двоичных файлов находятся в таблице адресов импорта (IAT), которая затем напрямую вызывает операционную систему Windows, как показано на приведенном ниже рисунке. API calls to the external binary files take place through the Import Address Table (IAT), which then directly calls the Windows operating system, as shown in the following figure.
В частности, процесс изменяет адрес уязвимой функции Windows в IAT таким образом, чтобы она указывала на код исправления совместимости, как показано на приведенном ниже рисунке. Specifically, the process modifies the address of the affected Windows function in the IAT to point to the compatibility fix code, as shown in the following figure.
Для статических связанных DLL перенаправление кода происходит при загрузке приложения. For statically linked DLLs, the code redirection occurs as the application loads. Кроме того, вы можете исправить динамически связываемые DLL-библиотеки, подключая функцию GetProcAddress API. You can also fix dynamically linked DLLs by hooking into the GetProcAddress API.
Влияние инфраструктуры исправления совместимости на проектирование Design Implications of the Compatibility Fix Infrastructure
При определении стратегии исправления приложения необходимо учитывать важные моменты в соответствии с определенными характеристиками инфраструктуры исправления совместимости. There are important considerations to keep in mind when determining your application fix strategy, due to certain characteristics of the Compatibility Fix infrastructure.
Исправление совместимости не является частью операционной системы Windows (как показано на предыдущем рисунке). The compatibility fix is not part of the Windows operating system (as shown in the previous figure). Следовательно, те же ограничения безопасности применяются к исправлению совместимости, которое применимо к коду приложения, что означает, что вы не можете использовать исправления совместимости для обхода каких либо механизмов безопасности операционной системы. Therefore, the same security restrictions apply to the compatibility fix as apply to the application code, which means that you cannot use compatibility fixes to bypass any of the security mechanisms of the operating system. Таким образом, исправления совместимости не увеличивают уровень безопасности, и вам не нужно понижать параметры безопасности для обеспечения исправлений совместимости. Therefore, compatibility fixes do not increase your security exposure, nor do you need to lower your security settings to accommodate compatibility fixes.
Инфраструктура исправления совместимости внедряет в приложение дополнительный код, прежде чем он будет вызывать операционную систему. The Compatibility Fix infrastructure injects additional code into the application before it calls the operating system. Это означает, что любое решение, которое может быть выполнено исправлением совместимости, также можно решить путем исправления кода приложения. This means that any remedy that can be accomplished by a compatibility fix can also be addressed by fixing the application code.
Исправления совместимости выполняются как код пользовательского режима внутри процесса приложения в пользовательском режиме. The compatibility fixes run as user-mode code inside of a user-mode application process. Это означает, что вы не можете использовать исправление совместимости для устранения проблем с кодом в режиме ядра. This means that you cannot use a compatibility fix to fix kernel-mode code issues. Например, нельзя использовать исправление совместимости для устранения проблем с драйверами устройств. For example, you cannot use a compatibility fix to resolve device-driver issues.
Некоторые антивирусные программы, брандмауэры и вредоносные программы работают в режиме ядра. Some antivirus, firewall, and anti-spyware code runs in kernel mode.
Определение того, когда следует использовать исправление совместимости Determining When to Use a Compatibility Fix
Решение о том, как использовать исправления совместимости для устранения проблем с совместимостью, может потребовать больше, чем просто технические проблемы. The decision to use compatibility fixes to remedy your compatibility issues may involve more than just technical issues. Следующие сценарии отражают другие распространенные причины использования исправления совместимости. The following scenarios reflect other common reasons for using a compatibility fix.
Сценарий 1 Scenario 1
В приложении, которое больше не поддерживается поставщиком, существует ошибка совместимости. The compatibility issue exists on an application which is no longer supported by the vendor.
Как и во многих компаниях, вы можете запускать приложения, для которых поставщик завершил поддержку. As in many companies, you may run applications for which the vendor has ended support. В этом случае поставщик не может внести в него исправления, и вы не можете получить доступ к исходному коду для самостоятельного изменения проблемы. In this situation, you cannot have the vendor make the fix, nor can you access the source code to modify the issue yourself. Однако возможно, что использование исправления совместимости может решить проблему совместимости. However, it is possible that the use of a compatibility fix might resolve the compatibility issue.
Сценарий 2 Scenario 2
В приложении, созданном внутренним приложением, существует ошибка совместимости. The compatibility issue exists on an internally created application.
Для устранения проблемы предпочтительнее исправить код приложения, но это не всегда возможно. While it is preferable to fix the application code to resolve the issue, this is not always possible. Возможно, ваша внутренняя группа не может решить все проблемы до развертывания новой операционной системы. Your internal team might not be able to fix all of the issues prior to the deployment of the new operating system. Вместо этого они могут использовать исправление совместимости везде, где это возможно. Instead, they might choose to employ a compatibility fix anywhere that it is possible. Затем они смогут исправить этот код только для проблем, которые невозможно устранить таким образом. They can then fix the code only for issues that cannot be resolved in this manner. С помощью этого метода ваша команда может изменить приложение так, как можно допустить время, не откладывая развертывание новой операционной системы в вашу среду. Through this method, your team can modify the application as time permits, without delaying the deployment of the new operating system into your environment.
Сценарий 3 Scenario 3
В приложении, для которого должна быть выпущена совместимая версия в ближайшем будущем, или в приложении, которое не является критическим для организации независимо от ее версии, существует ошибка совместимости. The compatibility issue exists on an application for which a compatible version is to be released in the near future, or an application that is not critical to the organization, regardless of its version.
В ситуации, когда приложение не имеет значения для вашей организации, или для более поздней версии, которая вскоре будет выпущена, вы можете использовать исправление совместимости в качестве временного решения. In the situation where an application is either unimportant to your organization, or for which a newer, compatible version is to be released shortly, you can use a compatibility fix as a temporary solution. Это означает, что вы можете продолжать использовать приложение, не откладывая развертывание новой операционной системы, предоставляя возможность обновлять конфигурацию, как только новая версия будет выпущена. This means that you can continue to use the application without delaying the deployment of a new operating system, with the intention of updating your configuration as soon as the new version is released.
Определение версии приложения для исправления Determining Which Version of an Application to Fix
Исправление совместимости можно применить к конкретной версии приложения с помощью предложения «до или после» или путем выбора конкретной версии. You can apply a compatibility fix to a particular version of an application, either by using the «up to or including» clause or by selecting that specific version. Это означает, что в следующей версии приложения не будет автоматически применено исправление совместимости. This means that the next version of the application will not have the compatibility fix automatically applied. Это важно, так как это позволяет продолжать пользоваться приложением, но оно также способствует тому, что поставщик может исправить это приложение. This is important, because it allows you to continue to use your application, but it also encourages the vendor to fix the application.
Поддержка проблем совместимости Support for Compatibility Fixes
Исправления совместимости отгружаются в составе операционной системы Windows и обновляются с помощью центра обновления Windows. Compatibility fixes are shipped as part of the Windows operating system and are updated by using Windows Update. Таким образом, они получают тот же уровень поддержки, что и Windows. Therefore, they receive the same level of support as Windows itself.
Исправления совместимости можно применить к любому приложению. You can apply the compatibility fixes to any of your applications. Тем не менее, корпорация Майкрософт не предоставляет средства для использования инфраструктуры исправлений совместимости для создания собственных настраиваемых исправлений. However, Microsoft does not provide the tools to use the Compatibility Fix infrastructure to create your own custom fixes.
Настройка совместимости старых приложений или программ с Windows 10
Большинство приложений (и других программ, например игр или служебных программ), предназначенных для предыдущих версий Windows, будут работать и в последней версии Windows 10, однако некоторые программы могут работать неправильно или вовсе не запускаться. Вот несколько способов решения проблем со старыми программами.
Чтобы проверить версию и сборку Windows, которую вы используете, введите winver в поле поиска на панели задач и нажмите клавишу ВВОД.
Если возникают проблемы с принтером или сканером после обновления до последней версии Windows 10, см. раздел Устранение проблем с принтерами после обновления системы до Windows 10.
Если у вас возникают проблемы с Bluetooth после обновления Windows 10, см. раздел Устранение неисправностей Bluetooth-подключений в Windows 10.
Сначала запустите средство устранения проблем с совместимостью.
В поле поиска на панели задач введите название приложения или программу, проблему с которой требуется устранить.
Выберите и удерживайте (или щелкните правой кнопкой мыши) программу, а затем Открыть папку с файлом .
Выберите и удерживайте (или щелкните правой кнопкой мыши) файл программы, выберите Свойства, а затем откройте вкладку Совместимость.
Выберите Запустить средство устранения проблем с совместимостью.
Если это не помогло, попробуйте настроить параметры на вкладке Совместимость. Ниже приведены сведения о том, что нужно найти, и о том, какие параметры выделены.
Параметры режима совместимости
Служит для запуска программ с параметрами, предназначенными для предыдущей версии Windows. Включите данный параметр, если известно, что программа предназначена для конкретной версии Windows (или работала с ней).
Режим пониженной цветности
Ограничение набора цветов в программе. В ряде старых программ используется ограниченный набор цветов.
Использовать разрешение экрана 640 × 480
Попробуйте включить этот параметр, если графика в программе имеет неровный контур или отображается неправильно.
Изменить параметры высокого разрешения
Если программа не отображается правильно на компьютере с дисплеем высокого разрешения (размытость или неправильный размер), выберите Изменить параметры высокого разрешения и попробуйте использовать один из следующих параметров в диалоговом окне Свойства.
В разделе DPI программы установите флажок рядом с пунктом Чтобы исправить проблемы масштабирования для этой программы, вместо параметра в настройках используйте этот параметр, чтобы использовать разрешение экрана, выбранное здесь для это программы.
Примечание: При этом значение DPI изменяется только для приложения, которое вы настраиваете. Если вы хотите настроить это значение для всех приложений, нажмите кнопку Пуск > Параметры > Дополнительные параметры масштабирования и следуйте инструкциям.
Дополнительные сведения о том, как изменить параметр для всех приложений, можно найти в статье исправление приложений, которые выглядят размытыми.
Для использования dpi, установленного для основного дисплея, выберите один из следующих параметров:
Вход в Windows Используйте DPI, установленное для основного дисплея при входе в Windows. Это параметр по умолчанию.
я открою эту программу. Использовать разрешение, установленное для основного дисплея на момент запуска определенной программы.
Изменить режим масштабирования приложения при высоком разрешении экрана
В области Переопределение масштабирования при высоком разрешении экрана установите флажок Переопределить режим масштабирования при высоком разрешении экрана и выберите один из следующих параметров.
Приложение. Отключить все параметры масштабирования Windows и использовать только параметр разработчика приложений. В предыдущих версиях Windows этот параметр назывался Отключить масштабирование изображения при высоком разрешении экрана.
Система. Переопределяет параметры разрешения программы, чтобы она отображалась так же, как и на дисплее с низким разрешением. Это приведет к размытости программы на дисплеях с высоким разрешением.
Система (улучшенная). Windows попытается использовать улучшенное масштабирование для этой программы. В результате текст в некоторых программах будет четким на дисплеях с высоким разрешением. Этот параметр не будет работать для некоторых программ.
Выполнять эту программу от имени администратора
Для правильной работы некоторых программ необходимы разрешения администратора. Для использования этого параметра войдите на компьютер от имени администратора.
Изменить параметры для всех пользователей
Примените параметры для этой программы ко всем учетным записям на компьютере и выберите изменить параметры для всех пользователей. Может потребоваться ввести пароль администратора или подтвердить выбор.