# WMDC Fix for Windows 10

**Version:** 1.3.0
**Author:** Autobase, Inc.
**Target:** .NET Framework 4.7 (Windows 10 1703+ 기본 탑재)

Windows 10 1703(Creators Update) 이후 Windows Mobile Device Center(WMDC)가 정상 작동하지 않는 문제를 해결하는 도구입니다.

---

## 문제 원인

Windows 10 1703부터 svchost.exe 분리 정책이 변경되어, 동일한 `WindowsMobile` svchost 그룹 내의 서비스들이 개별 프로세스로 분리됩니다. WMDC의 두 핵심 서비스(`RapiMgr`, `WcesComm`)가 분리되면서 서비스 간 통신이 실패하고 WMDC가 작동 불가 상태가 됩니다.

추가로 서비스 로그온 계정이 `LocalService`인 경우 장치 연결이 되지 않는 문제가 있어 `LocalSystem`으로 변경이 필요합니다.

---

## 이 도구가 수행하는 작업

### 1. SvcHostSplitDisable 레지스트리 (핵심)

| 레지스트리 경로 | 값 이름 | 데이터 | 설명 |
|---|---|---|---|
| `HKLM\SYSTEM\CurrentControlSet\Services\RapiMgr` | `SvcHostSplitDisable` | `1` (DWORD) | RapiMgr svchost 분리 방지 |
| `HKLM\SYSTEM\CurrentControlSet\Services\WcesComm` | `SvcHostSplitDisable` | `1` (DWORD) | WcesComm svchost 분리 방지 |

### 2. 서비스 시작유형 변경

서비스가 `사용안함(Disabled)`으로 되어 있으면 시작할 수 없으므로 `자동(지연)`으로 변경합니다:

| 서비스 | 변경 후 |
|---|---|
| RapiMgr | `자동(지연 시작)` |
| WcesComm | `자동(지연 시작)` |

### 3. 서비스 로그온 계정 변경

| 서비스 | 변경 전 | 변경 후 |
|---|---|---|
| RapiMgr (Windows Mobile 기반 장치 연결) | `NT AUTHORITY\LocalService` | `LocalSystem` |
| WcesComm (Windows Mobile 2003 기반 장치 연결) | `NT AUTHORITY\LocalService` | `LocalSystem` |

### 4. 서비스 복구 옵션 설정

두 서비스 모두 실패 시 자동 재시작되도록 설정합니다:

- 첫 번째 실패: 서비스 재시작 (60초 후)
- 두 번째 실패: 서비스 재시작 (60초 후)
- 이후 실패: 서비스 재시작 (60초 후)
- 실패 횟수 초기화: 24시간(86400초)

### 5. AutoStart 레지스트리 (편의)

| 레지스트리 경로 | 값 이름 | 데이터 |
|---|---|---|
| `HKLM\SOFTWARE\Microsoft\Windows CE Services\AutoStartOnConnect` | `WmdcOpen` | bat 파일 경로 |
| `HKLM\SOFTWARE\Microsoft\Windows CE Services\AutoStartOnDisconnect` | `WmdcCloseOpen` | bat 파일 경로 |

### 6. 배치파일 생성 (편의)

`C:\Windows\WindowsMobile\` 폴더에 생성:

- **WmdcOpen.bat** - `wmdc.exe /show` (WMDC 화면 열기)
- **WmdcCloseOpen.bat** - `wmdc.exe /quit` → 4초 대기 → `wmdc.exe` (WMDC 재시작)

### 7. 재부팅 안내

패치 적용 후 재부팅을 권장하며, 즉시 재부팅 옵션을 제공합니다.