Исправления совместимости для Windows 10, Windows 8, Windows 7 и Windows Vista

Вы можете устранить некоторые проблемы совместимости, вызванные различиями между версиями операционной системы Windows. К таким проблемам относятся ограничения контроля учетных записей.

Важно  

Набор Application Compatibility Toolkit (ACT) устанавливает 32- и 64-разрядную версии средства Compatibility Administrator. Для 32-разрядных приложений нужно использовать 32-разрядную версию, а для 64-разрядных приложений — 64-разрядную версию. При попытке использования неправильной версии вы получите сообщение об ошибке.

Если вы запустите средство Compatibility Administrator от имени администратора (с более высоким уровнем привилегий), все восстановленные приложения могут работать успешно. Однако виртуализация и перенаправление могут работать не так, как ожидается. Чтобы убедиться, что исправление совместимости решило проблему, необходимо проверить восстановленное приложение, запустив его от имени требуемой учетной записи пользователя.

 

Исправления совместимости

В следующей таблице перечислены известные исправления совместимости для всех выпущенных операционных систем от Windows Vista до Windows 10. Исправления представлены в алфавитном порядке.

Исправление Описание

8And16BitAggregateBlts

В приложениях, для которых применяется 8- и 16-разрядное исправления, могут обнаруживаться проблемы с производительностью. На этом уровне собираются все битовые операции и повышается производительность.

8And16BitDXMaxWinMode

Приложения, которые используют DirectX 8 и 9 и для которых применяются 8- и 16-разрядные исправления, работают в развернутом оконном режиме. Этот уровень исправляет приложения, в которых обнаруживаются проблемы с графикой в полноэкранном режиме.

8And16BitGDIRedraw

Исправление предназначено для приложений, которые используют GDI и работают в режиме 8-разрядного цвета. Приложение должно перерисовать свое окно в RealizePalette.

AccelGdipFlush

Исправление увеличивает скорость GdipFlush, с которым обнаружены проблемы с производительностью в диспетчере окон рабочего стола.

AoaMp4Converter

Исправление устраняет проблему с отображением в конвертере AoA Mp4.

BIOSRead

Проблема проявляется, когда приложение не может получить доступ к объекту Device\PhysicalMemory вне работающих в режиме ядра драйверов в любой операционной системе Windows Server® 2003.

Исправление позволяет исполняемым (EXE) файлам OEM использовать функцию GetSystemFirmwareTable вместо NtOpenSection, когда в BIOS запрашиваются данные о памяти \\Device\Physical.

BlockRunasInteractiveUser

Проблема возникает, когда InstallShield создает процессы установки и удаления, которые не удается завершить и которые создают предупреждения или сообщения об ошибке.

Исправление запрещает InstallShield задавать для разделов реестра RunAs значение InteractiveUser, поскольку InteractiveUser больше не имеет прав администратора.

Примечание  

Дополнительные сведения об этом исправлении приложений см. в статье Использование исправления BlockRunAsInteractiveUser.

 

ChangeFolderPathToXPStyle

Исправление необходимо, если приложению не удается вернуть пути к папкам оболочки, когда используется API SHGetFolder.

Исправление перехватывает запрос пути SHGetFolder к общему пути appdata и возвращает путь в стиле Windows® XP вместо пути к файлу в стиле Windows Vista.

ClearLastErrorStatusonIntializeCriticalSection

Исправление требуется, когда не удается запустить приложение.

Исправление изменяет вызов функции InitializeCriticalSection, чтобы она проверяла код ошибки NTSTATUS, а затем задает для последней ошибки состояние ERROR_SUCCESS.

CopyHKCUSettingsFromOtherUsers

Проблема возникает, когда процесс установки приложения должен работать в режиме с повышенными привилегиями и зависит от параметров HKCU, заданных для других пользователей.

Исправление просматривает существующие профили пользователей и пытается скопировать указанные разделы в область реестра HKEY_CURRENT_USER.

Чтобы настроить работу этого исправления, вы можете ввести нужные разделы реестра в качестве параметров, разделяемых символом ^, например Software\MyCompany\Key1^Software\MyCompany\Key2.

Примечание  

Дополнительные сведения об этом исправлении приложений см. в статье Использование исправления CopyHKCUSettingsFromOtherUsers.

 

CorrectCreateBrushIndirectHatch

На эту проблему указывает сообщение об ошибке нарушения прав доступа, а также внезапное завершение работы приложения при выборе или обрезке изображения.

Исправление изменяет значение штриховки для стиля кисти, которое передается в функцию CreateBrushIndirect(), и позволяет правильно обрабатывать эту информацию.

CorrectFilePaths

Проблема возникает, когда приложение пытается записать файлы на жесткий диск, но получает отказ в доступе или сообщение об ошибке «Файл не найден» или «Путь не найден».

Исправление изменяет пути к файлам, задавая в них новое расположение на жестком диске.

Примечание  

Дополнительные сведения об исправлении приложений CorrectFilePaths см. в статье Использование исправления CorrectFilePaths. Это исправление рекомендуется использовать вместе с исправлением CorrectFilePathsUninstall, если оно применяется к файлу установки.

 

CorrectFilePathsUninstall

Проблема возникает, когда от удаленного приложения остаются файлы, каталоги и ссылки.

Исправление изменяет пути к файлам, которые используются в процессе удаления приложения.

Примечание  

Дополнительные сведения об этом исправлении см. в статье Использование исправления CorrectFilePathsUninstall. Это исправление рекомендуется использовать вместе с исправлением CorrectFilePaths, если оно применяется к файлу установки.

 

CorrectShellExecuteHWND

Проблема возникает, когда запускается исполняемый файл (EXE), но вместо появления запроса на повышение прав начинает мигать элемент панели задач, а также когда приложение не представляет допустимого значения HWND при вызове функции ShellExecute(Ex).

Исправление перехватывает вызовы ShellExecute(Ex) и проверяет значение HWND. Если оно оказывается недопустимым, то исправление позволяет использовать в вызове текущее активное значение HWND.

Примечание  

Дополнительные сведения об исправлении приложений CorrectShellExecuteHWND см. в статье Использование исправления CorrectShellExecuteHWND.

 

CustomNCRender

Исправление запрещает диспетчеру окон рабочего стола прорисовывать область вне клиента, и приложение должно самостоятельно выполнять эту прорисовку. При этом окна часто принимают стиль Windows XP.

DelayApplyFlag

Это исправление устанавливает флажок KERNEL, USER или PROCESS, если загружается указанная библиотека DLL.

Чтобы настроить это исправление, введите в командной строке следующую команду:

имя_библиотеки_DLL;тип_флага;шестнадцатеричное_значение

Здесь имя_библиотеки_DLL — это имя библиотеки DLL с указанием расширения файла. Тип_флага имеет значение KERNEL, USER или PROCESS, а шестнадцатеричное_значение начинается с 0x и может иметь длину до 64 бит.

Примечание  

Флаг типа PROCESS может иметь длину не более 32 бит. Несколько записей следует разделять обратной косой чертой (\).

 

DeprecatedServiceShim

Проблема возникает, когда приложение пытается установить службу, которая зависит от устаревшей службы. Появляется сообщение об ошибке.

Исправление перехватывает вызовы функции CreateService и удаляет зависимость от устаревшей службы из параметра lpDependencies.

Чтобы настроить это исправление, введите следующую команду в командной строке:

устаревшая_служба\служба_приложения/устаревшая_служба2\служба_приложения2

Здесь устаревшая_служба — имя устаревшей службы, а служба_приложения — имя службы приложения, которую нужно изменить, например NtLmSsp\WMI.

Примечание  

Если не указать имя служба_приложения, то устаревшая служба будет удалена из всех вновь созданных служб.

 
Примечание  

Несколько записей следует разделять косой чертой (/).

 

DirectXVersionLie

Это проблема возникает, когда приложение завершается с ошибкой, поскольку не удается найти правильный номер версии DirectX®.

Исправление изменяет вызов функции DXDIAGN GetProp, чтобы возвращать правильную версию DirectX.

Чтобы настроить это исправление, введите следующую команду в командной строке:

MAJORVERSION.MINORVERSION.LETTER

Например, 9.0.c.

DetectorDWM8And16Bit

Исправление предназначено для приложений, которые работают в режиме с 8- и 16-разрядным цветом, поскольку эти старые режимы не поддерживаются в Windows 8.

Disable8And16BitD3D

Это исправление повышает производительность приложений с 8- и 16-разрядным цветом, которые используют для прорисовки D3D без участия DirectDraw.

Disable8And16BitModes

Исправление отключает поддержку 8- и 16-разрядных цветов и перечисление режимов с такими цветами.

DisableDWM

Проблема возникает, когда некоторые объекты не рисуются или на экране в приложении остаются артефакты объектов.

Исправление временно отключает функции меню темы Windows Aero для неподдерживаемых приложений.

Примечание  

Дополнительные сведения об этом исправлении приложений см. в статье Использование исправления DisableDWM.

 

DisableFadeAnimations

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

Исправление отключает анимации исчезновения для неподдерживаемых приложений.

DisableThemeMenus

Проблема возникает, когда приложение, пытающееся обнаружить и использовать правильные параметры Windows, работает непредвиденным образом.

Исправление временно отключает функции меню темы Windows Aero для неподдерживаемых приложений.

DisableWindowsDefender

Исправление отключает Защитник Windows для приложений обеспечения безопасности, которые не могут работать вместе с ним.

DWM8And16BitMitigation

Исправление предназначено для приложений, которые работают в режиме с 8- и 16-разрядным цветом, поскольку эти старые режимы не поддерживаются в Windows 8.

DXGICompat

Исправление позволяет передавать в подсистему DirectX инструкции по обеспечению совместимости для отдельных приложений.

DXMaximizedWindowedMode

Приложения, которые используют DirectX 8 и 9, работают в развернутом оконном режиме. Это необходимо для приложений, которые используют GDI/DirectDraw вместе с Direct3D.

ElevateCreateProcess

Проблема возникает, когда процессы установки, удаления или обновления завершаются ошибкой, поскольку хост-процесс вызывает функцию CreateProcess, и она возвращает сообщение об ошибке ERROR_ELEVATION_REQUIRED.

Исправление перехватывает код ошибки и пытается снова вызвать функцию CreateProcess с необходимым повышением привилегий. Если исправленное приложение уже имеет манифест UAC, то код ошибки возвращается без изменений.

Примечание  

Дополнительные сведения об этом исправлении приложений см. в статье Использование исправления ElevateCreateProcess.

 

EmulateOldPathIsUNC

Проблема возникает, когда приложение завершается с ошибкой из-за неправильного UNC-пути.

Исправление изменяет функцию PathIsUNC, чтобы возвращать значение True для UNC-путей в Windows. 

EmulateGetDiskFreeSpace

Проблема возникает, когда приложение не удается установить или запустить и появляется сообщение об ошибке — о нехватке на диске места для установки или использования приложения, хотя на самом деле объем свободного места на диске отвечает требованиям приложения.

Исправление определяет объем свободного места на диске, и если он превышает 2 ГБ, то исправление совместимости возвращает значение 2 ГБ, а если он меньше 2 ГБ, то возвращается фактическое значение.

Примечание  

Дополнительные сведения об этом исправлении приложений см. в статье Использование исправления EmulateGetDiskFreeSpace.

 

EmulateSorting

Проблема возникает, когда в приложении неправильно работает поиск.

Исправление принудительно задает для приложений, использующих таблицу сортировки CompareStringW/LCMapString, старую версию таблицы.

Примечание  

Дополнительные сведения об этом исправлении приложений см. в статье Использование исправления EmulateSorting.

 

EmulateSortingWindows61

Исправление имитирует порядок сортировки Windows 7 и Windows Server 2008 R2 для различных API.

EnableRestarts

Проблема возникает, когда приложение и компьютер зависают, поскольку не удается завершить процессы, которые мешают компьютеру выполнить перезагрузку.

Исправление позволяет перезагрузить компьютер и завершить процесс установки, проверяя и обеспечивая наличие привилегии службы SeShutdownPrivilege.

Примечание  

Дополнительные сведения об этом исправлении приложений см. в статье Использование исправления EnableRestarts.

 

ExtraAddRefDesktopFolder

Проблема возникает, когда приложение многократно вызывает метод Release(), и объект уничтожается раньше времени.

Исправление противодействует попыткам приложения получить папку рабочего стола в оболочке, вызывая метод AddRef() для папки «Рабочий стол», который возвращается функцией SHGetDesktopFolder.

FailObsoleteShellAPIs

Проблема возникает, когда приложение завершается ошибкой, поскольку оно вызывает устаревшие API.

Исправление реализует устаревшие функции полностью или с заглушками, которые завершаются с ошибкой.

Примечание  

Чтобы отключить реализацию функций и принудительно завершать все функции с ошибкой, вы можете ввести в командной строке FailAll=1.

 

FailRemoveDirectory

Проблема возникает, когда процесс удаления приложения не удаляет все его файлы и папки.

Это исправление завершает ошибкой вызовы метода RemoveDirectory(), в которых указывается путь, совпадающий с указанным в командной строке оболочки совместимости.  Поддерживается только один путь.  Путь может содержать переменные среды, но должен задаваться точно. Частичные пути не поддерживаются.

Исправление может устранить проблему, если приложение ожидает, что RemoveDirectory() удалит папку немедленно, хотя для нее открыт дескриптор.

FakeLunaTheme

Проблема возникает, когда приложение темы отображается неправильно: цвета размыты или пользовательский интерфейс не детализирован.

Исправление перехватывает API GetCurrentThemeName и возвращает значение темы Windows XP по умолчанию (Luna).

Примечание  

Дополнительные сведения об исправлении приложений FakeLunaTheme см. в статье Использование исправления FakeLunaTheme.

 

FlushFile

Проблема возникает, когда файл обновлен, но изменения не сразу отражаются на жестком диске. Приложения не могут обнаружить изменения файла.

Исправление позволяет функции WriteFile вызывать API FlushFileBuffers, которые записывают файловый кэш на диск.

FontMigration

Исправление заменяет шрифт, запрошенный приложением, на более подходящий шрифт, чтобы избежать усечения текста.

ForceAdminAccess

Проблема возникает, когда приложение не работает во время явной проверки администратора.

Исправление позволяет пользователю временно представляться членом группы «Администраторы», возвращая значение True во время проверки администратора.

Примечание  

Дополнительные сведения об этом исправлении приложений см. в статье Использование исправления ForceAdminAccess.

 

ForceInvalidateOnClose

Для приложений, которые обрабатывают сообщения о недействительности, исправление делает недействительными все окна, находящиеся под закрывающим или скрывающим окном.

ForceLoadMirrorDrvMitigation

Исправление загружает исправление для драйвера зеркалирования Windows 8 для приложений, в которых оно не применяется автоматически.

FreestyleBMX

Исправление устраняет состояние гонки приложений, связанное с порядком сообщений в окнах.

GetDriveTypeWHook

Приложение работает непредвиденным образом во время установки, например программа установки сообщает, что не удается выполнить установку в заданное пользователем расположение.

Исправление изменяет GetDriveType() так, чтобы для пути к файлу отображался только корневой каталог. Это необходимо, если приложение передает неполный или некорректный путь к файлу, пытаясь получить тип диска, на котором существует путь к файлу.

GlobalMemoryStatusLie

На проблему указывает сообщение об ошибке «Память компьютера переполнена», появляющееся при запуске приложения.

Исправление изменяет структуру состояния памяти, чтобы она сообщала о файле подкачки размером 400 МБ независимо от его настоящего размера.

HandleBadPtr

На проблему указывает сообщение об ошибке нарушения прав доступа, которое появляется, поскольку API выполняет проверку указателя до использования параметра.

Исправление поддерживает проверку lpBuffer из функций InternetSetOptionA и InternetSetOptionW для дополнительной проверки параметров.

HandleMarkedContentNotIndexed

На проблему указывает приложение, которое завершается ошибкой при попытке изменить атрибут для файла или каталога.

Исправление перехватывает все вызовы API, возвращающие атрибуты файла и каталоги, которые вызываются из каталога %TEMP%, и возвращает для атрибута FILE_ATTRIBUTE_NOT_CONTENT_INDEXED исходное состояние.

HeapClearAllocation

На проблему указывает непредвиденное завершение процесса выделения.

Исправление обнуляет выделение кучи для приложения.

IgnoreAltTab

Проблема возникает, когда приложение не работает при нажатии определенных клавиш.

Исправление перехватывает API RegisterRawInputDevices и запрещает доставку сообщений WM_INPUT. Из-за невозможности доставки включенные обработчики пропускаются, и DInput использует обработчики Windows.

Примечание  

Дополнительные сведения об этом исправлении приложений см. в статье Использование исправления IgnoreAltTab.

 

IgnoreChromeSandbox

Исправление позволяет Google Chrome работать в системах, где ntdll загружен в область памяти выше 4 ГБ.

IgnoreDirectoryJunction

На проблему указывает сообщение об ошибке чтения или нарушении прав доступа, которое появляется, когда приложение пытается найти или открыть файлы.

Исправление связывает API FindNextFileW, FindNextFileA, FindFirstFileExW, FindFirstFileExA, FindFirstFileW и FindFirstFileA, запрещая им возвращать соединения для каталогов.

Примечание  

Символьные ссылки отображаются, начиная с Windows Vista.

 

IgnoreException

Проблема возникает, когда приложение после запуска немедленно прекращает работу или запускается с экраном, на котором виден только курсор.

Исправление позволяет приложению игнорировать указанные исключения. По умолчанию это исправление игнорирует исключения привилегированного режима, но его можно настроить так, чтобы игнорировать все исключения.

Чтобы настроить это исправление, введите следующую команду в командной строке:

исключение1;исключение2

Здесь исключение1 и исключение2 — исключения, которые нужно игнорировать. Пример: ACCESS_VIOLATION_READ:1;ACCESS_VIOLATION_WRITE:1.

Важно  

Это исправление совместимости следует использовать, только если вы уверены, что допустимо игнорировать исключения. Если игнорировать исключение, которое игнорировать нельзя, то могут возникнуть дополнительные проблемы совместимости.

 
Примечание  

Дополнительные сведения об этом исправлении приложений см. в статье Использование исправления IgnoreException.

 

IgnoreFloatingPointRoundingControl

Исправление позволяет приложению игнорировать запрос на тип округления и работать так, как в предыдущих версиях приложения.

Прежде чем в библиотеке времени выполнения C появилась поддержка инструкций SSE2 с плавающей запятой, запрос на тип округления игнорировался, и по умолчанию использовалось округление до ближайшего целого. Эта оболочка совместимости игнорирует запрос на тип округления и позволяет приложениям использовать старые функции.

IgnoreFontQuality

Проблема возникает, когда текст в приложении выглядит искаженным.

Исправление позволяет шрифтам с ключами цвета правильно работать со сглаживанием.

IgnoreMessageBox

На проблему указывает окно сообщения, которое появляется с содержимым отладки или лишним содержимым, когда приложение работает в непредвиденной операционной системе.

Исправление перехватывает API MessageBox* и проверяет в них наличие определенного текста сообщения. Если находится нужный текст, то приложение продолжает работу, не открывая окно сообщения.

Примечание  

Дополнительные сведения об этом исправлении приложений см. в статье Использование исправления IgnoreMessageBox.

 

IgnoreMSOXMLMF

На проблему указывает сообщение об ошибке, в котором сообщается, что операционной системе не удается найти файл MSVCR80D.DLL.

Исправление игнорирует зарегистрированный объект MSOXMLMF.DLL, который Microsoft® Office 2007 загружает в операционную систему каждый раз, когда загружается XML-файл, а затем завершает ошибкой CoGetClassObject по CLSID. Это исправление совместимости будет просто игнорировать зарегистрированный MSOXMLMF и завершать ошибкой CoGetClassObject по его CLSID.

IgnoreSetROP2

Исправление игнорирует операции чтения, изменения и записи на рабочем столе, чтобы избежать проблем с производительностью.

InstallComponent

Исправление предлагает пользователю установить платформу .NET Framework 3.5 или 2.0, поскольку платформа .NET Framework не входит в Windows 8.

LoadLibraryRedirect

Исправление заставляет приложение загружать системные версии библиотек вместо версий, распространяемых вместе с приложением.

LocalMappedObject

Проблема возникает, когда приложению не удается создать объект в пространстве имен Global.

Исправление перехватывает вызов функции для создания объекта и заменяет слово Global на Local.

Примечание  

Дополнительные сведения об этом исправлении приложений см. в статье Использование исправления LocalMappedObject.

 

MakeShortcutRunas

Проблема возникает, когда не удается удалить приложение из-за ошибок доступа.

Исправление находит все программы удаления на основе RunDLL.exe и принудительно запускает их с другими учетными данными во время установки приложения. После применения этого исправления программа установки создает ярлык, в котором указана строка для запуска во время установки приложения, что позволяет выполнить удаление позже.

Примечание  

Дополнительные сведения об этом исправлении приложений см. в статье Использование исправления MakeShortcutRunas.

 

ManageLinks

Исправление перехватывает общие API, которые переходят в каталог или к исполняемому файлу (EXE), а затем преобразует символьные пути или соединения для каталогов перед передачей их в исходные API.

MirrorDriverWithComposition

Исправление позволяет драйверам зеркалирования правильно работать с композицией рабочего стола с приемлемой производительностью.

MoveToCopyFileShim

Проблема возникает, когда во время установки приложения возникают проблемы безопасного доступа.

Исправление принудительно запускает API CopyFile вместо API MoveFile. API CopyFile не перемещают дескриптор безопасности, что позволяет файлам приложения получать для конечной папки дескриптор по умолчанию и предотвращает проблему доступа.

OpenDirectoryAcl

На проблему указывает сообщение об ошибке, в котором сообщается об отсутствии разрешений на доступ к приложению.

Исправление понижает уровень привилегий безопасности для указанного набора файлов и папок.

Примечание  

Дополнительные сведения об этом исправлении приложений см. в статье Использование исправления OpenDirectoryACL.

 

PopCapGamesForceResPerf

Исправление устраняет проблемы производительности в играх PopCap, например Bejeweled2. Проблемы производительности наблюдаются на некоторых адаптерах нижнего уровня при определенных разрешениях, когда буфер 1024 × 768 масштабируется в соответствии с разрешением экрана.

PreInstallDriver

Исправление предустанавливает драйверы для приложений, которые в ином случае будут пытаться устанавливать или запускать драйверы во время первоначального запуска.

PreInstallSmarteSECURE

Исправление предустанавливает CLSID в рамках компьютера для приложений, использующих защиту от копирования SmartSECURE, которые в ином случае будут пытаться устанавливать CLSID во время первоначального запуска.

ProcessPerfData

На проблему указывает сообщение об ошибке «Необработанное исключение», возникающее, когда приложение пытается считать значение реестра с данными о производительности процесса, чтобы определить, запущен ли другой экземпляр приложения.

Исправление устраняет ошибку, передавая фиктивный раздел реестра с данными о производительности процесса, чтобы приложение считало, что запущен только один экземпляр.

Примечание  

Эта проблема чаще всего возникает в приложениях .NET.

 

PromoteDAM

Исправление регистрирует приложение, чтобы получать уведомления об изменении состояния питания.

PropagateProcessHistory

Проблема возникает, когда приложению не удается применить исправление приложения.

Исправление задает переменную среды _PROCESS_HISTORY, чтобы дочерние процессы при поиске исправлений приложения могли проверять наличие сведений в родительском каталоге.

ProtectedAdminCheck

Проблема возникает, когда не удается запустить приложение из-за неправильных разрешений защищенного администратора.

Исправление устраняет проблемы, которые возникают, когда приложения используют нестандартные проверки администратора, что вызывает ложное срабатывание для учетных записей пользователей, которые запускаются как защищенные администраторы. В этом случае связанный ИД безопасности существует, но может только запрещать доступ.

RedirectCRTTempFile

Исправление перехватывает ошибочные вызовы CRT, которые пытаются создать временный файл в корневом каталоге тома, что приводит к перенаправлению вызовов во временный файл временного каталога пользователя.

RedirectHKCUKeys

Проблема возникает, когда приложение недоступно из-за ограничений контроля учетных записей.

Исправление копирует все вновь создаваемые разделы HKCU в учетные записи HKCU других пользователей. Это универсальное исправление для ограничений контроля учетных записей, если требуются разделы HKCU, которые недоступны приложению во время выполнения.

RedirectMP3Codec

Эта проблема возникает, когда не удается воспроизвести MP3-файлы.

Исправление перехватывает вызов CoCreateInstance отсутствующего фильтра и перенаправляет его в поддерживаемую версию.

RedirectShortcut

Проблема возникает, если приложение недоступно через ярлык или если ярлыки приложения не удаляются в процессе удаления приложения.

Исправление перенаправляет все ярлыки, созданные при установке приложения, в соответствии с указанным путем.

  • Ярлыки меню «Пуск». Находятся в каталоге \\ProgramData\Microsoft\Windows\Start Menu для всех пользователей.

  • Ярлыки на рабочем столе или на панели быстрого запуска. Вы должны вручную поместить ярлыки на рабочий стол или панель быстрого запуска каждого пользователя.

Эта проблема возникает из-за ограничений контроля учетных записей. В частности, если программа установки приложения работает с повышенными привилегиями и сохраняет ярлыки в контексте пользователя с повышенными привилегиями. В этом случае пользователь с ограниченным доступом не может получить доступ к ярлыкам.

Это исправление нельзя применить к EXE-файлу, который содержит манифест и предоставляет уровень выполнения.

RelaunchElevated

Проблема возникает, когда процессы установки, удаления или обновления завершаются ошибкой при запуске из ведущего приложения.

Если сложно определить родительский процесс, исправление позволяет запускать дочерний EXE-файл с повышенными привилегиями с помощью исправления ElevateCreateProcess или помечая EXE-файлы как RunAsAdmin.

Примечание  

Дополнительные сведения об этом исправлении приложений см. в статье Использование исправления RelaunchElevated.

 

RetryOpenSCManagerWithReadAccess

Проблема возникает, когда приложение пытается открыть диспетчер служб и получает сообщение об ошибке «Отказано в доступе».

Исправление повторяет вызов и запрашивает более ограниченный набор прав, в том числе:

RetryOpenServiceWithReadAccess

Проблема возникает, когда появляется сообщение об ошибке «Не удается открыть службу, поскольку приложение использует API OpenService() для проверки наличия некоторой службы».

Исправление повторяет вызов API OpenService(), проверяет наличие у пользователя прав администратора, а не защищенного администратора, и использует доступ только для чтения. Приложения могут проверять наличие службы, вызывая API OpenService(), но некоторые приложения запрашивают полный доступ при выполнении такой проверки. Это исправление повторяет вызов, запрашивая доступ только для чтения. Для этого пользователь должен иметь права администратора.

Примечание  

Дополнительные сведения об этом исправлении приложений см. в статье Использование исправления RetryOpenServiceWithReadAccess.

 

RunAsAdmin

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

Исправление позволяет приложению работать с повышенными привилегиями. Это исправление эквивалентно указанию requireAdministrator в манифесте приложения.

Примечание  

Дополнительные сведения об этом исправлении приложений см. в статье Использование исправления RunAsAdmin.

 

RunAsHighest

Проблема возникает, когда администраторы не могут просмотреть версию чтения/записи приложения, которое доступно обычным пользователям только для чтения.

Исправление позволяет приложению работать с максимальными доступными разрешениями. Это эквивалентно указанию highestAvailable в манифесте приложения.

Примечание  

Дополнительные сведения об этом исправлении приложений см. в статье Использование исправления RunAsHighest.

 

RunAsInvoker

Проблема возникает, когда приложение не обнаруживается как требующее повышения привилегий.

Исправление позволяет приложению работать с привилегиями, которые связаны с процессом создания, не требуя повышения привилегий. Это эквивалентно указанию asInvoker в манифесте приложения.

Примечание  

Дополнительные сведения об этом исправлении приложений см. в статье Использование исправления RunAsInvoker.

 

SecuROM7

Это исправление использует SecuROM7 для защиты приложений от копирования.

SessionShim

Исправление перехватывает вызовы API из приложений, которые пытаются взаимодействовать со службами, работающими в другом сеансе, используя в качестве параметра префикс имени служб терминалов (Global или Local).

Вы можете указать в командной строке список изменяемых объектов, разделяя значение двойной обратной косой чертой (\\). Также можно не указывать параметры, чтобы изменить все объекты.

Важно  

Пользователи не могут выполнять вход в Windows Vista и более поздних версий с сеансом 0 (глобальным сеансом). Поэтому приложения, которым требуется доступ к сеансу 0, автоматически завершаются ошибкой.

 
Примечание  

Дополнительные сведения об этом исправлении приложений см. в статье Использование исправления SessionShim.

 

SetProtocolHandler

Исправление регистрирует приложение в качестве обработчика протокола.

Чтобы настроить это исправление, введите в командной строке следующую команду:

клиент;протокол;приложение

Здесь клиент — имя протокола электронной почты, протокол имеет значение mailto, а приложение — имя приложения.

Примечание  

Поддерживаются только почтовый клиент и протокол mailto. Несколько клиентов можно разделять обратной косой чертой (\).

 

SetupCommitFileQueueIgnoreWow

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

Исправление отключает файловую систему WoW64, которая используется в 64-разрядных выпусках Windows, чтобы запретить 32-разрядным приложениям доступ к 64-разрядной файловой системе во время их установки.

SharePointDesigner2007

Исправление устраняет ошибку приложения, которая серьезно замедляет приложение, работающее в диспетчере окон рабочего стола.

ShimViaEAT

Проблема возникает, когда приложение завершается с ошибкой даже после применения исправления совместимости, которое должно устранить проблему. Эта проблема часто обнаруживается в приложениях, которые используют unicows.dll или защиту от копирования.

Исправление применяет указанные исправления совместимости, изменяя таблицу экспорта и отменяя включение и исключение модулей.

Примечание  

Дополнительные сведения об этом исправлении приложений см. в статье Использование исправления ShimViaEAT.

 

ShowWindowIE

Проблема возникает, когда в веб-приложении обнаруживаются неполадки с навигацией и отображением из-за переключения вкладок.

Исправление перехватывает вызов API ShowWindow, чтобы устранить проблемы, возникающие, когда веб-приложение определяет, что оно находится в дочернем окне. Это исправление вызывает настоящий API ShowWindow в родительском окне верхнего уровня.

SierraWirelessHideCDROM

Исправление восстанавливает установку драйвера беспроводного оборудования Sierra, предотвращая проверку ошибок.

Sonique2

Приложение использует недопустимый стиль окна, который выглядит поврежденным в диспетчере окон рабочего стола. Это исправление заменяет стиль окна допустимым значением.

SpecificInstaller

Проблема возникает, когда функции GenericInstaller не удается выбрать файл установки приложения.

Это исправление помечает приложение как файл установщика (например, setup.exe), а затем запрашивает повышение привилегий.

Примечание  

Дополнительные сведения об этом исправлении приложений см. в статье Использование исправления SpecificInstaller.

 

SpecificNonInstaller

Проблема возникает, когда приложение, не являющееся установщиком (и имеющее необходимые привилегии) вызывает ложное срабатывание в функции GenericInstaller.

Исправление помечает приложение, чтобы исключить его обнаружение функцией GenericInstaller.

Примечание  

Дополнительные сведения об этом исправлении приложений см. в статье Использование исправления SpecificNonInstaller.

 

SystemMetricsLie

Исправление заменяет значения SystemMetrics и SystemParametersInfo значениями из предыдущих версий Windows.

TextArt

Приложение получает разные координаты в режимах DWM ON и DWM OFF, что приводит к зависанию приложения. Это исправление устраняет проблему.

TrimDisplayDeviceNames

Исправление усекает имена устройств отображения, которые возвращаются API EnumDisplayDevices.

UIPICompatLogging

Исправление позволяет записывать сообщения Windows от Internet Explorer и других процессов.

UIPIEnableCustomMsgs

Проблема возникает, когда приложение неправильно взаимодействует с другими процессами, поскольку не доставляются настроенные сообщения Windows.

Исправление позволяет передавать настроенные сообщения Windows в текущий процесс с нижнего уровня целостности рабочего стола. Это исправление эквивалентно вызову функции RegisterWindowMessage, за которой в коде следует функция ChangeWindowMessageFilter.

Чтобы настроить это исправление, введите следующую команду в командной строке:

строка_сообщения1 строка_сообщения2

Здесь строка_сообщения1 и строка_сообщения2 представляют строки сообщений, которые могут передаваться.

Примечание  

Несколько строк сообщения следует разделять пробелами. Дополнительные сведения об этом исправлении приложений см. в статье Использование исправления UIPIEnableCustomMsgs.

 

UIPIEnableStandardMsgs

Проблема возникает, когда приложение неправильно взаимодействует с другими процессами, поскольку не доставляются стандартные сообщения Windows.

Исправление позволяет передавать стандартные сообщения Windows в текущий процесс с нижнего уровня целостности рабочего стола. Это исправление эквивалентно вызову в коде функции ChangeWindowMessageFilter.

Чтобы настроить это исправление, введите в командной строке следующую команду:

1055 1056 1069

Здесь 1055 представляет идентификатор первого сообщения, 1056 — идентификатор второго сообщения, а 1069 — идентификатор третьего сообщения, которое может передаваться.

Примечание  

Несколько сообщений следует разделять пробелами. Дополнительные сведения об этом исправлении приложений см. в статье Использование исправления UIPIEnableStandardMsgs [act].

 

VirtualizeDeleteFileLayer

Исправление виртуализирует операции DeleteFile для приложений, которые пытаются удалить защищенные файлы.

VirtualizeDesktopPainting

Исправление повышает производительность ряда операций в контексте устройства рабочего стола при использовании диспетчера окон рабочего стола.

VirtualRegistry

На проблему указывает сообщение об ошибке «Не удалось найти компонент», которое появляется при запуске приложения.

Исправление включает функции реестра, допускающие виртуализацию, перенаправление, значения расширения, спуфинг версий, имитацию счетчиков производительности и др.

Дополнительные сведения об этом исправлении приложений см. в статье Использование исправления VirtualRegistry.

VirtualizeDeleteFile

Проблема возникает, когда отображаются несколько сообщений об ошибке, а приложению не удается удалить файлы.

Чтобы устранить проблемы виртуализации файлов и контроля учетных записей, которые обнаружены в Windows Vista, исправление делает вызов функции DeleteFile приложения виртуальным. Это исправление также связывает другие файловые API (например, GetFileAttributes), чтобы гарантировать удаление виртуализации файла.

Примечание  

Дополнительные сведения об этом исправлении приложений см. в статье Использование исправления VirtualizeDeleteFile.

 

VirtualizeHKCRLite

Проблема возникает, когда приложению не удается зарегистрировать компоненты COM во время выполнения.

Исправление перенаправляет вызовы записи HKCR (HKLM) в куст HKCU для регистрации COM по пользователям. Оно работает во многом аналогично исправлению VirtualRegistry, когда используется параметр VirtualizeHKCR, но VirtualizeHKCRLite имеет более высокую производительность.

HKCR является виртуальным объединением каталогов HKCU\Software\Classes и HKLM\Software\Classes. Использование HKCU предпочтительно, если приложение работает без повышения привилегий, и игнорируется, если приложение работает с повышением привилегий.

Это исправление совместимости обычно используется в сочетании с исправлением VirtualizeRegisterTypeLib.

Дополнительные сведения об этом исправлении приложений см. в статье Использование исправления VirtualizeHKCRLite.

VirtualizeRegisterTypeLib

Исправление, используемое вместе с исправлением VirtualizeHKCRLite, гарантирует, что регистрация библиотеки типов и классов COM выполняется одновременно. Оно работает во многом аналогично исправлению RegistryTypeLib, когда используется параметр RegisterTypeLibForUser.

Примечание  

Дополнительные сведения об этом исправлении приложений см. в статье Использование исправления VirtualizeRegisterTypelib.

 

WaveOutIgnoreBadFormat

На эту проблему указывает сообщение об ошибке, в котором сообщается «Не удается инициализировать звуковое устройство из аудиодрайвера», после чего приложение закрывается.

Исправление позволяет приложению игнорировать ошибку формата и продолжать работать правильно.

WerDisableReportException

Исправление отключает передачу исключений без предупреждений в средство отчетов об ошибках Windows, в том числе исключений, о которых сообщает база данных связывания и внедрения объектов (OLE DB). Исправление перехватывает API RtlReportException и возвращает сообщение об ошибке STATUS_NOT_SUPPORTED.

Win7RTM/Win8RTM

Этот уровень поддерживает для приложения режим совместимости Windows 7 / Windows 8.

WinxxRTMVersionLie

Проблема возникает, когда приложение завершается с ошибкой, поскольку не удается найти правильный номер версии для необходимой операционной системы Windows.

Все исправления совместимости версий устраняют проблему, при которой приложение не работает, поскольку не удается найти определенную версию операционной системы. Исправление совместимости версий возвращает подходящие данные о версии операционной системы. Например, VistaRTMVersionLie возвращает приложению сведения о версии Windows Vista независимо от версии операционной системы, фактически работающей на компьютере.

Wing32SystoSys32

На проблему указывает сообщение об ошибке, в котором сообщается, что неправильно установлена библиотека WinG.

Исправление проверяет, существует ли библиотека WinG32 в правильном каталоге. Если библиотека находится в другом каталоге, то это исправление копирует данные (обычно во время выполнения приложения) в каталог %WINDIR% \system32.

Важно  

Для работы этого исправления приложение должно иметь права администратора.

 

WinSrv08R2RTM

WinXPSP2VersionLie

Проблема возникает, когда в приложении обнаруживаются неполадки из-за библиотеки DLL среды выполнения Visual Basic.

Исправление заставляет приложение выполнить следующие действия.

  1. Откройте Compatibility Administrator и выберите значение Нет для параметра Режим операционной системы.

  2. На странице Исправления совместимости щелкните элемент WinXPSP2VersionLie и нажмите кнопку Параметры.

    Откроется диалоговое окно Параметры для <имя_исправления>.

  3. Введите vbrun60.dll в поле Имя модуля, нажмите кнопку Включить, а затем щелкните Добавить.

  4. Сохраните настроенную базу данных.

    Примечание  

    Дополнительные сведения об исправлении приложений WinXPSP2VersionLie см. в статье Использование исправления WinXPSP2VersionLie.

     

WRPDllRegister

Приложение завершается с ошибкой, пытаясь зарегистрировать компонент COM, который выпущен вместе с Windows Vista или более поздней.

Исправление пропускает процедуры регистрации и отмены регистрации компонентов COM с защитой ресурсов Windows при вызове функций DLLRegisterServer и DLLUnregisterServer.

Чтобы настроить это исправление, введите в командной строке следующую команду:

Component1.dll;Component2.dll

Здесь Component1.dll и Component2.dll представляют собой пропускаемые компоненты.

Примечание  

Дополнительные сведения об этом исправлении приложений см. в статье Использование исправления WRPDllRegister.

 

WRPMitigation

На проблему указывает сообщение об ошибке «Отказано в доступе», которое появляется, когда приложение пытается получить доступ к защищенному ресурсу операционной системы, запрашивая права выше, чем только для чтения.

Это исправление эмулирует успешную проверку подлинности и изменение API файла и реестра, что позволяет приложению продолжить работу.

Примечание  

Дополнительные сведения об исправлении WRPMitigation см. в статье Использование исправления WRPMitigation.

 

WRPRegDeleteKey

На проблему указывает сообщение об ошибке «Отказано в доступе», которое появляется, когда приложение пытается удалить раздел реестра.

Исправление проверяет наличие защиты ресурсов Windows для раздела реестра. Если раздел защищен, то исправление эмулирует процесс удаления.

XPAfxIsValidAddress

Исправление эмулирует работу Windows XP для MFC42!AfxIsValidAddress.

 

Режимы совместимости

В следующей таблице перечислены известные режимы совместимости.

Имя режима совместимости Описание Включенные исправления совместимости

WinSrv03

Эмулирует операционную систему Windows Server 2003.

  • Win2k3RTMVersionLie

  • VirtualRegistry

  • ElevateCreateProcess

  • EmulateSorting

  • FailObsoleteShellAPIs

  • LoadLibraryCWD

  • HandleBadPtr

  • GlobalMemoryStatus2GB

  • RedirectMP3Codec

  • EnableLegacyExceptionHandlinginOLE

  • NoGhost

  • HardwareAudioMixer

WinSrv03Sp1

Эмулирует операционную систему Windows Server 2003 с пакетом обновления 1 (SP1).

  • Win2K3SP1VersionLie

  • VirtualRegistry

  • ElevateCreateProcess

  • EmulateSorting

  • FailObsoleteShellAPIs

  • LoadLibraryCWD

  • HandleBadPtr

  • EnableLegacyExceptionHandlinginOLE

  • RedirectMP3Codec

  • HardwareAudioMixer