최근 수정 시각 : 2024-11-22 18:46:19

호환성 모드

1. 개요2. 도입 배경3. 특징
3.1. 레지스트리 규칙
4. 세부 설정
4.1. 이 프로그램을 실행할 호환 모드4.2. 256색으로 실행(~Windows 7) / 축소된 컬러 모드(Windows 8~)4.3. 640x480 해상도에서 실행4.4. 시각 테마 사용 안 함(Windows XP~Windows 7)4.5. 데스크톱 컴퍼지션 사용 안 함(Windows Vista) / 바탕 화면 구성 사용 안 함(Windows 7)4.6. 높은 DPI 설정에서 디스플레이 배율을 사용하지 않음(Windows Vista~8.1) / 높은 DPI 설정 변경(Windows 10~Windows 11)
4.6.1. 높은 DPI 설정을 재정의합니다(Windows 10 RTM)4.6.2. 프로그램 DPI(Windows 10 RS1~)
4.7. 이 프로그램이 OneDrive 파일로 작업할 수 있도록 허용(Windows 8, 8.1)4.8. 관리자 권한으로 이 프로그램 실행(Windows Vista~)4.9. 이 프로그램에 대해 고급 텍스트 서비스 사용 안 함(Windows XP SP1~SP3)4.10. 전체 화면 최적화 사용 중지(Windows 10 RS3 ~ )4.11. 다시 시작을 위해 이 프로그램을 등록하세요(Windows 10 20H1 ~ )4.12. 레거시 디스플레이 ICC 색 관리 사용(Windows 11)4.13. 관리자가 아닌 사용자가 프로그램을 실행할 수 있음(Windows Server 2003)4.14. 에뮬레이션 설정 변경( Windows on ARM)
4.14.1. x64 에뮬레이션 기능 숨기기(x86 앱만 해당)4.14.2. 애플리케이션 설정 그룹4.14.3. 고급 설정 사용
4.14.3.1. 멀티 코어 설정4.14.3.2. 에뮬레이션 설정
5. 여담

1. 개요

Compatibility mode

Windows XP/ 2003부터[1] 도입된 별로 호환성을 설정하는 모드다.[2]

2. 도입 배경

Windows XP는 NT기반으로 Windows NT용으로 개발된 앱이 아니면 호환성 문제를 일으킨다. 이러한 문제점으로 인해 호환성 모드를 이용하면 Windows 9x 기반 앱을 Windows XP에서 실행할 수 있다.[3] 이게 꽤 획기적이었는지 현재 시점인 11까지도 계승되어 있다.

또한 Windows를 ARM에 포팅하려는 시도가 몇번 있었고, Windows RT에서 단절적 이행을 하려다 쓰라린 실패를 했었기 때문에 x86 에뮬레이션도 포함하게 되었다.

3. 특징

DirectX를 이용하는 게임 등은 DX 버전이 OS 버전과 매우 긴밀하게 엮여 있기 때문에 정상적인 실행을 보장할 수 없다. 넥슨의 게임들은 호환성 모드를 설정해놓아도 Nexon Game Security에서 호환성 모드 설정을 강제로 해제해버린다.

32비트 Windows 7 기준 어째서인지 XP 이하로 설정하고 실행하면 UAC가 뜨는데[4] 가정용이 아닌 2000이나 NT 4.0은 뜨지 않고 실행된다. XP로 호환모드를 설정해야 하는데 UAC가 뜨는 것 때문에 힘들다면 2000으로 맞추어보자. XP랑 커널이 비슷하기 때문에 대부분 잘 실행된다.

64비트 프로그램의 호환성을 적용할 때에는 Windows Vista 이상만 선택 가능하다. XP 이전까지는 64비트가 존재하지 않았고, XP는 64비트가 에디션으로 뒤늦게 지원된 데다가 이마저도 파편화되었기 때문에 64비트의 사용률이 매우 낮았다.

Windows 8부터는 가정용이 아니었던 OS(Windows NT 4.0, 2000, Server 2003, Server 2008 등)는 선택할 수 없다. Windows Server 계열의 경우 이에 대응하는 가정용 운영체제(Windows XP, Vista 등)를 사용하면 해결되는 경우가 많지만, Windows NT 4.0과 2000은 조금 문제가 생긴다. 해당 OS에 대응되는 가정용 운영체제는 Windows 95와 Me인데, 이들은 DOS 기반이기 때문에 구조적으로 NT 계열 운영체제와 전혀 다르다. 그나마 Windows 2000(NT 5.0)은 Windows Me(4.9)보다는 Windows XP(NT 5.1)에 더 가까우니 그걸 사용하면 된다.

Windows 10에서도 Windows 9x 운영체제를 선택할 수 있다. 32비트 환경에선 별 문제 없으나, 64비트 환경에서 9x 계열의 Windows들 중에 하나를 진짜로 선택해서 실행하면 응용 프로그램 뿐만 아니라 전체적인 시스템이 불안정해지는 수가 생기므로 해당 설정들은 그냥 함정카드라고 보면 된다.

Windows 95에 비슷한 기능이 있는데, MKCOMPAT이란 프로그램을 실행하면, Windows 3.1로 버전을 속이거나, 컨트롤 스타일을 설정할 수 있다. 그런데 한글판에서도 이 프로그램은 한글 번역이 안 되어 있다.

Microsoft Office 등 몇몇 응용 프로그램은 호환성 모드 탭이 나타나지 않는데, 이는 *.manifest 파일을 통해 호환성 모드를 사용할 수 없게 막아놓았기 때문이다.

Windows 기본 내장 프로그램들 역시 Windows의 일부이기 때문에 사용할 수 없습니다 라고 뜬다. 애초에 Windows 내장 프로그램이 호환성 문제가 생길리가...

3.1. 레지스트리 규칙

호환성 모드 설정은 레지스트리의 HKEY_CURRENT_USER\\Software\\Microsoft\\Windows NT\\CurrentVersion\\AppCompatFlags\\Layers에 있다. 전역(모든 사용자) 호환 모드는 HKEY_LOCAL_MACHINE에 있다. 참고로 레지스트리 수정을 통해서 속성 창에서 Windows의 일부분이기 때문에 호환 모드를 설정할 수 없다는 프로그램에도 호환모드를 적용할 수 있으며 숨겨진 설정이나 후술할 호환성 툴킷 프로그램을 통해 직접 만든 호환 모드나 Windows 8부터 사라진 Windows 2000 호환 모드 등을 적용할 수도 있다.

작성 방법은 레지스트리의 해당 위치에 실행 파일의 전체 경로가 적힌 이름의 문자열값을 만든 뒤 내용을 아래 규칙에 맞게 입력하면 된다. 맨 앞에는 ~ 를 붙여야 하며 각 항목은 띄어쓰기로 구분한다.

아래는 Windows 10 22H2 기준으로 사용 가능한 설정이다.
설정 내용
이 프로그램을
실행할 호환 모드
Windows 95 WIN95
Windows 98 / Windows Me WIN98
Windows XP(서비스 팩 2) WINXPSP2
Windows XP(서비스 팩 3) WINXPSP3
Windows Vista VISTARTM
Windows Vista(서비스 팩 1) VISTASP1
Windows Vista(서비스 팩 2) VISTASP2
Windows 7 WIN7RTM
Windows 8 WIN8RTM
축소된 컬러 모드 8비트(256) 색 256COLOR
16비트(65536) 색 16BITCOLOR
640 x 480 해상도에서 실행 640X480
전체 화면 최적화 사용 중지 DISABLEDXMAXIMIZEDWINDOWEDMODE
관리자 권한으로 이 프로그램 실행 RUNASADMIN
다시 시작을 위해 이 프로그램을 등록하세요 REGISTERAPPRESTART
높은 DPI 설정 변경
다음과 같은 경우에
내 메인 디스플레이에
설정된 DPI를 사용
Windows에 로그인했을 때 PERPROCESSSYSTEMDPIFORCEOFF
이 프로그램을 열 때 PERPROCESSSYSTEMDPIFORCEON
높은 DPI 조정
동작을 재정의합니다.
응용 프로그램
(높은 DPI 설정에서 디스플레이 배율을 사용하지 않음)
HIGHDPIAWARE
시스템 DPIUNAWARE
시스템(고급) GDIDPISCALING DPIUNAWARE

예를 들어 C:\\Example\\Example.exe 파일의 호환성 모드 설정에서 Windows XP(서비스 팩 2)와 16비트(65536) 색, 전체 화면 최적화 사용 중지, 관리자 권한으로 이 프로그램 실행, 시스템(고급)에 체크했다면 레지스트리 항목의 이름은 "C:\\Example\\Example.exe"이 되고 내용은 "~ WINXPSP2 16BITCOLOR DISABLEDXMAXIMIZEDWINDOWEDMODE RUNASADMIN GDIDPISCALING DPIUNAWARE"이 되는 식이다(따옴표 제외).

4. 세부 설정

4.1. 이 프로그램을 실행할 호환 모드

에뮬레이션할 OS를 선택할 수 있다. 이게 가능한 이유는, Windows는 대게 기존 NT 커널에 뭔가를 계속해서 추가하는 방식으로 개발되기 때문에 이전 OS의 코드가 거의 그대로 남아 있기 때문이다. 따라서 별도의 가상화를 할 필요 없이 호환 레이어를 씌우면 에뮬레이션이 된다. 가령 Windows 7을 선택하고 실행했을 경우, 해당 프로그램은 구동 중인 OS가 NT 6.1이라고 인식한다. 물론 레거시 코드를 언제까지나 그대로 두지는 않기 때문에, Windows 10이나 Windows 11처럼 간극이 너무 멀 경우 옛날 OS는 선택할 수 없다. 그리고 당연하지만 사용 중인 버전보다 나중에 나온 OS는 선택할 수 없다.

간혹 속성 창에서 호환성 모드를 보고는 "Windows 11인데 Windows 8이라고 떠요" 하는 사람들이 많은데, 이건 단지 하위호환을 위한 모드라 현재 실행 중인 OS 버전이 목록에 있어봤자 의미가 없다. 어차피 체크 박스 해제해두면 적용되지 않으니 목록에 10/11이 없다 해서 당황하지 말고 안심하자.

Windows XP에서는 콤보 박스에서 기본적으로 선택된 항목이 Windows 95로 되어 있었고, Windows Vista에서는 Windows XP(서비스 팩 2)[5]로 되어 있었다. Windows 7부터 Windows 8까지는 기본적으로 선택된 항목이 Windows XP(서비스 팩 3)[6]/Windows Vista(서비스 팩 2)[7]로 되어 있었지만 Windows 8.1부터는 Windows에서 프로그램을 분석해서 Windows XP(서비스 팩 2), Windows Vista, Windows 7, Windows 8 중 하나를 알아서 선택해준다.
  • 아래 옵션은 64비트 프로그램에서는[8] 선택할 수 없다.
    • NT 3.95로 실행되는 모드
    • NT 4.0으로 실행되는 모드
      • Windows 98[UAC][NT?] / Windows Me[UAC][NT?]: 원래 98은 4.1이고 Me는 4.9지만 앞자리가 같으니 아무래도 상관 없는 듯 하다.[15]
      • Windows NT 4.0(서비스 팩 5)[Win8~]: RTM~SP4나 SP6은 불가능하다. RTM~SP4를 꼭 써야만 한다면 대신 98/Me를 써보자.
    • NT 5.0으로 실행되는 모드
      • Windows 2000[UAC]: 서비스 팩은 목록에 없는데,[18] 상술한 레지스트리 해킹을 이용해야 한다. SZ 값의 데이터는 SP2~3는 WIN2000SP2 또는 WIN2000SP3로 설정하면 된다. SP1과 SP4는 설정할 수 없다.
    • NT 5.1로 실행되는 모드
      • Windows XP[UAC]: RTM. Windows Server 2003에서만 사용 가능하다.
      • Windows XP(서비스 팩 2)[UAC]: SP1을 사용하고 싶다면 상술한 레지스트리 주소에서 SZ값의 데이터를 WINXPSP1으로 설정하면 된다.
      • Windows XP(서비스 팩 3)[UAC]
    • NT 5.2로 실행되는 모드
      • Windows Server 2003(서비스 팩 1)[Win8~][UAC]: RTM을 사용하고 싶다면 상술한 레지스트리 주소에서 SZ값의 데이터를 WINSRV03으로 설정하면 된다.
  • 64비트 프로그램에서는 아래 모드만 표시된다.
    • NT 6.0으로 실행되는 모드
      • Windows Server 2008(서비스 팩 1)[Win8~]: Windows Server 2008 자체가 SP1부터 시작하므로 RTM으로 설정할 수는 없다. Windows Server 2008 R2(NT 6.1)를 사용하고 싶다면 SZ값의 데이터를 WINSRV08R2RTM으로 설정하면 된다.
      • Windows Vista: RTM을 의미한다.
      • Windows Vista(서비스 팩 1)
      • Windows Vista(서비스 팩 2)
    • NT 6.1로 실행되는 모드
      • Windows 7: RTM이다. 그래서 Windows 7 SP1에서도 해당 항목이 존재한다. 7에서 이 항목을 선택한다고 호환성 모드가 꺼진 게 아니니 주의. SP1은 호환성 모드로 사용할 수 없다.
    • NT 6.2로 실행되는 모드
      • Windows 8: 8.1은 선택할 수 없어서 NT 6.3은 에뮬레이션할 수 없다. 8.1부터 OS 버전 API가 달라져서 넣을 필요가 없다고 생각했거나, 8과 8.1의 차이가 크지 않아서 넣지 않은 걸지도 모른다.

Windows 11의 경우 커널버전이 Windows 10과 같으므로 OS 목록에 10이 없다.

Windows Installer 기반 설치 프로그램(*.msi)은 '이전 버전의 Windows' 하나만 선택 가능하다. *.appx(Windows 8~)나 *.msix(Windows 10 1709~) 등은 아예 호환성 모드 탭 자체가 존재하질 않는데, exe가 아니라 Windows 스토어 앱이라서 그렇다. Windows 7까지는 앱이라는 개념이 아예 없었는데 존재하지 않는 걸 지원할 수는 없으니.

4.2. 256색으로 실행(~Windows 7) / 축소된 컬러 모드(Windows 8~)

7까지는 딱 8비트지만 8부터는 다양하게 선택할 수 있다.

7까지는 프로그램을 실행하면 해상도 설정을 256색으로 변경하는 옵션이었지만 8부터는 DWM이 발전해 해당 프로그램 이외의 화면 전체는 계속 32비트 색으로 나온다.

4.3. 640x480 해상도에서 실행

해당 프로그램이 실행 중인 동안 해상도 설정이 640x480으로 변경된다. 전체화면 게임에서 해상도를 변경한 것과 같으나, 이건 창 모드로 돌릴 때도 적용된다.

4.4. 시각 테마 사용 안 함(Windows XP~Windows 7)

Windows XP부터 도입된 시각 테마를 프로그램에 적용되지 못하게 한다. 설정 시 해당 프로그램은 고전 테마로만 나온다. 오래된 프로그램에서 제목 표시줄이나 메뉴 등이 깨져서 보일 때 사용하면 된다. 단, Windows Vista/7의 경우 Windows Aero가 켜져 있으면 제목 표시줄에는 투명 효과가 그대로 적용되어 나온다. Windows 8부터는 고전 테마가 삭제되면서 이 옵션도 자연스레 사라졌다.

4.5. 데스크톱 컴퍼지션 사용 안 함(Windows Vista) / 바탕 화면 구성 사용 안 함(Windows 7)

Windows Vista부터는 일반적인 데스크탑 환경에서도 3D 자원을 적극 사용하는데, 이 기능을 비활성화한다. 8부터는 이 기능을 끌 수 없게 되어 해당 옵션도 자연스럽게 사라졌다.

비스타에서는 영어를 음차한 "데스크톱 컴퍼지션 사용 안 함"이라고 표기한다. 영문명이나 기능은 동일하다.

프로그램 실행 중에는 Aero 테마가 Basic 테마로 변경된다. Basic / 고전 / 고대비 사용 중에도 미리 체크해 둘 수 있다.

4.6. 높은 DPI 설정에서 디스플레이 배율을 사용하지 않음(Windows Vista~8.1) / 높은 DPI 설정 변경(Windows 10~Windows 11)

HiDPI 관련 설정. 프로그램이 뭔가 흐리거나 잘릴 때 이 기능을 사용하면 좋다.

8.1까지는 끄고 키는 것밖에 안되지만 10부터는 DPI 정책 개편과 더불어 해당 기능이 강화되어 여러 가지 설정을 할 수 있게 되었다. 그러나 설정이 복잡해졌고 한국어 한정으로 발번역이 넘쳐나게 되어서 헬 게이트가 열리게 되었다.

4.6.1. 높은 DPI 설정을 재정의합니다(Windows 10 RTM)

조정한 사람(?)을 선택할 수 있는데, 응용 프로그램, 시스템, 시스템(고급) 세 가지 중에 고를 수 있다. 자세한 내용은 문서 참조.

4.6.2. 프로그램 DPI(Windows 10 RS1~)

이 설정은 디스플레이 배율을 사용하지 않는 설정이 아니니 착각하지 않도록 주의하자.

설명에는 DPI를 해결한다고 적혀 있는데, resolve의 오역으로, DPI를 처리한다가 맞는다.

이것도 체크하면 옵션이 두 개 있는데, 백그라운드 프로그램을 위한 설정이다.
  • Windows에 로그인했을 때: 해당 프로그램의 모든 프로세스에 메인 디스플레이의 DPI를 적용한다.
  • 이 프로그램을 열 때: 프로그램을 더블 클릭해 열었을 때 메인 디스플레이의 DPI를 적용한다.

4.7. 이 프로그램이 OneDrive 파일로 작업할 수 있도록 허용(Windows 8, 8.1)

SkyDrive(당시 명칭)가 OS에 통합된 지 얼마 되지 않았기 때문에 클라우드 파일은 접근할 수 없도록 제한이 걸려 있었는데, 이제 10부터는 이 옵션이 기본으로 적용되어 옵션이 사라졌다.

4.8. 관리자 권한으로 이 프로그램 실행(Windows Vista~)

바로 가기의 고급 옵션에서 키는 거랑 동일한 기능이지만, 설정 위치가 다르다. 바로 가기 고급 옵션에서 켜면 바로 가기 파일(*.lnk)에 해당 설정을 기록하지만, 호환성 모드에서 켜면 레지스트리에 해당 설정을 기록한다. 둘 다 켤 수도 있지만 그런다고 해서 Administrator보다 더 높은 권한[25]으로 실행되지는 않는다.

4.9. 이 프로그램에 대해 고급 텍스트 서비스 사용 안 함(Windows XP SP1~SP3)

Windows XP에서 도입된 필기 입력이나 음성 인식 등의 고급 텍스트 서비스를 사용할 수 없게 한다. 한글이 입력되지 않거나 깨져서 나올 때 선택하면 된다.

Windows XP RTM이나 Windows Server 2003, Windows Vista 이후 버전에서는 해당 옵션이 없다.

4.10. 전체 화면 최적화 사용 중지(Windows 10 RS3 ~ )

Windows 10 RS3부터는 Xbox Game Bar 등의 오버레이 사용을 위해 DirectX 기반 응용 프로그램에서 배타적 전체 화면으로 전환해도 내부적으로는 전체 창 모드로 변환해서 출력하는데, 이를 비활성화한다. 프레임이 이상하게 안 나오거나 입력지연이 심해지는 경우에 사용하면 된다. 최신 게임에 적용시키면 Alt+Enter을 눌러서 전체 화면으로 전환해도 프레임이 급락하는 등의 역효과가 발생한다. 또 이 옵션을 사용하면 오버레이를 사용하는 기능들은 사용할 수 없게 된다.

4.11. 다시 시작을 위해 이 프로그램을 등록하세요(Windows 10 20H1 ~ )

영문버전의 표현은 "Register this Program for Restart".

가끔 프로그램이 응답 없음 상태에 빠지면 프로세스를 종료할 거냐 물어보지만, 지원하는 프로그램의 경우 정보 복구를 시도할 수도 있다면서 프로그램 다시 시작 옵션이 생겨난다.물론 그래도 돌아오지 않는다 이 지원 여부를 Windows가 인식하지 못할 수도 있으므로 항상 표시하는 옵션인데, 지원하는 프로그램에서도 성공 확률이 희박한데 이걸 지원 못하는 프로그램에서 켜버리면 시작점으로 돌아가지 않고 중간에서 다시 시작할 수도 있기 때문에 어떻게 동작할 지 아무도 장담할 수 없다.

4.12. 레거시 디스플레이 ICC 색 관리 사용(Windows 11)

광색역 관련 설정. 광색역 디스플레이를 쓰는데, 색감이 왠지 모르게 이상할 경우에 키면 된다. 최신 프로그램은 광색역 대응이 잘 되어 있기 때문에 이러한 문제가 없다. 이 옵션을 키면 비효율적인 색 관리 시스템을 사용하게 되기 때문에 게임 등에서 프레임이 소폭 감소한다.

4.13. 관리자가 아닌 사용자가 프로그램을 실행할 수 있음(Windows Server 2003)

관리자 권한으로 실행의 반대 버전. 상술했듯이 XP 버전에는 UAC가 존재하지 않기 때문에 대신 해당 옵션이 생겼다.

4.14. 에뮬레이션 설정 변경( Windows on ARM)

기존 IBM PC 호환기종용 앱을 ARM 탑재 기기에서 열 경우 나타나는 옵션이다. Microsoft Surface, 갤럭시 북 시리즈 중 일부가 ARM을 탑재했기 때문에 심심찮게 찾게 되는 옵션이기도 하다.

Windows 10 초창기 번역이라 그런지[26] 말끔히 잘 되었지만 앱 - 애플리케이션 - 응용 프로그램이 매끄럽게 통일되지 않았다.[27] 저 세 개의 명칭은 다 같은 것을 지칭한다.

4.14.1. x64 에뮬레이션 기능 숨기기(x86 앱만 해당)

32비트 앱의 경우 x86 - x64(WOW64) - ARM64 이렇게 이중으로 거치는데, 이 과정을 x86 - ARM32로 바꾼다.

4.14.2. 애플리케이션 설정 그룹

모든 앱을 ARM에 대응시키는 건 불가능하기 때문에 가장 보편적인 정책 네 가지를 정해놨는데, 이 중에서 고를 수 있다.
  • 기본값: 보통은 이 모드로 실행된다.
  • 안전한 에뮬레이션: 성능 향상을 위한 최적화 트릭을 사용하지 않는다. "성능 향상 트릭"이 오히려 속도를 저하시키는 경우 오히려 이 모드를 켰을 때 성능이 더 좋아질 수도 있다.
  • 제한된 실행: 안전한 에뮬레이션보다 트릭을 더 배제한다.
  • 매우 엄격한 실행: 일체의 트릭도 허용하지 않는다. 가상 머신에서 돌리는 정도의 속도라 봐도 좋다.

4.14.3. 고급 설정 사용

해당 옵션은 켜야 할 때가 언제인지 명확하지 않을 뿐더러, 오히려 성능을 감소시킬 수 있다.
4.14.3.1. 멀티 코어 설정
말 그대로 해당 앱이 멀티 코어를 어떻게 쓸 지에 관한 설정이다.
  • 고속: 기본값이다.
  • 멀티 코어 제한: 각 코어간 메모리 공유를 제한한다. XP 시절처럼 멀티 코어를 보수적으로 사용하게 된다.
  • 매우 엄격한 멀티 코어 운영: 각 코어간 메모리 공유를 더욱 제한한다. 여기까지 오면 사실상 멀티 코어의 장점은 퇴색된다.
  • 싱글 코어 강제: 앱에서 멀티 코어를 아예 사용하지 않는다.
4.14.3.2. 에뮬레이션 설정
에뮬레이션의 구체적인 방식을 설정한다.
  • 응용 프로그램 캐시 사용 안 함: 에뮬레이션 오버헤드 감소를 위해 미리 짜둔 코드 블록을 무시하고 다시 컴파일한다. DBT에 문제가 있거나 앱 자체가 잘못 포팅되었을 경우 유용한 옵션.
  • 하이브리드 실행 모드를 사용하지 않도록 설정(x86만 해당): 상술했듯이 x86 앱은 두 번의 에뮬레이션을 거쳐야 하기 때문에, 64비트 앱을 만들 수는 없는데 ARM 포팅은 하고 싶을 경우 궁여지책으로 ARM64 코드가 적힌 CHPE(Compiled Hybrid Portable Executable) 이진 파일을 넣어두는데, 이 옵션을 키면 그것을 무시하도록 한다. 32비트 - 64비트 자료형 변환에 문제가 있을 경우 키면 된다.
  • 추가 경량 에뮬레이션 보호: 충돌 방지 과정을 거친다. 당연히 100% 막아주는 것은 아니며 오히려 역효과를 일으킬 수도 있다. 과정을 한 단계 거치는 것이기 때문에 오버헤드가 증가한다.
  • 자체 코드 수정에 대한 지원 제한: 어떤 앱은 ARM 에뮬레이션을 위해 코드를 직접 수정할 수 있도록 허용해놨는데, 이 기능의 사용을 줄인다.
  • RWX 페이지 성능 최적화를 사용 안 함: RWX(Readable Writable Accessable) 페이지의 최적화 하지 않음으로써 오버 헤드를 줄인다. RWX 페이지 성능 최적화의 효과가 큰 경우 이 옵션을 키면 오히려 독이 된다.
  • JIT 최적화 사용 안 함(x64만 해당): 즉석 컴파일 성능이 감소한다. JIT 과정에서 문제가 발생하는 것 같을 경우 해당 옵션을 키면 좋다.
  • 부동 소수점 최적화 사용 안 함(x64만 해당): 부동 소수점의 처리 방식을 32비트 방식으로 회귀한다.

5. 여담

  • 마이크로소프트에서 만든 Microsoft Application Compatibility Toolkit라는 프로그램을 사용하면 더 복잡하고 세세한 호환성 모드도 설정 가능하다.[28]


[1] Windows 2000은 서비스 팩 2 이상으로 업데이트해야 하며 수동으로 활성화해야 한다. [2] XP 베타 버전에서는 에뮬레이션 모드라고 부른다. [3] 반대의 경우는 KernelEX 문서 참조. 다만 이는 9X 전용이기에 Windows XP에서 Windows 7 프로그램을 실행하고 싶다면 기타 호환성 레이어 프로그램을 사용해야 한다. 다만 이러한 프로그램들은 다 영어라 한글판에 설치하면 일부 기능이 영어로 나타날 수 있다. [4] XP까지는 대부분의 경우에는 기본적으로 관리자 모드였기 때문이다. 그래서 XP 기반인 Server 2003은 그 밑에 관리자 권한을 무시하도록 하는 체크박스가 따로 있었다. 다만 XP는 제한된 계정을 만들고 거기서 다음 사용자로 실행 기능을 통해서 관리자 권한으로 실행하는 방식으로 UAC를 대체할 수 있다. [5] 64비트 프로그램에서는 이 프로그램을 실행할 호환 모드를 설정할 수 없다. [6] 32비트 프로그램의 경우. [7] 64비트 프로그램의 경우. [8] OS가 아니라 프로그램 기준이다. 물론 64비트 OS에서도 해당 옵션을 선택하는 것은 그리 추천하지 않는다. [UAC] Windows Vista부터는 UAC를 띄우게 만든다. 뜨지 않게 하려면 마이크로소프트에서 배포한 Application Compatibility Administrator라는 프로그램으로 SDB 파일을 만들어서 수동으로 적용해야 한다. [NT?] 원래는 NT 커널이 아니지만 일단은 그렇게 인식된다. [UAC] [NT?] [UAC] [NT?] [15] 당시 프로그램들은 버전이 4.0으로 3.1보다 더 높음에도 불구하고 앞자리가 3이 아니라서 프로그램을 구동하지 못하는 일이 일어났는데, 이걸 역이용한 것으로 보인다. [Win8~] Windows 8부터는 선택할 수 없으며, 꼭 사용해야 하면 상술한 레지스트리 주소로 가서 Windows 2000 RTM은 WIN2000, 2000 서비스 팩 2는 WIN2000SP2, 2000 서비스 팩 3은 WIN2000SP3, Windows NT 4.0 서비스 팩 5는 NT4SP5, 서버 2003은 WINSRV03, 서버 2003 서비스 팩 1은 WINSRV03SP1, Windows 서버 2008 서비스 팩 1은 WINSRV08SP1, Windows 서버 2008 R2는 WINSRV08R2RTM, Windows XP RTM은 WINXP, Windows XP 서비스 팩 1은 WINXPSP1을 입력해야 사용할 수 있다. [UAC] [18] 초창기부터 지금까지 풀린 적이 없었다. [UAC] [UAC] [UAC] [Win8~] [UAC] [Win8~] [25] SYSTEM이나 TrustedInstaller 등. 잘못 건드리면 보안에 취약해질 뿐만 아니라 시스템이 영구적으로 손상될 수도 있기 때문에 꼼수를 쓰지 않는 이상 접근이 불가능하다. [26] Windows RT 시절부터 ARM 지원의 포석이 깔려 있었기 때문이다. [27] 이 문제는 8에서도 있었다. 사실 원문에서도 Application과 App으로 차이가 나기 때문에 어쩔 수 없지만. 앱 스토어 도입 이전에 작성된 번역이 웬만하면 수정되지 않기 때문에 더욱 그럴 거다. [28] Windows 10에서 실행하면 "알려진" 호환성 문제가 있다면서 실행되지 않는다. 해당 프로그램은 지원이 종료되었기 때문. 설치 경로에서 실행화일명인 Compatadmin.exe를 Compatadmin1.exe로 변경하면 정상적으로 실행된다.