2020-09-04 github.io에서 작성
드라이버를 만들어서 설치를 하게 되면 다양한 문제에 봉착합니다.
바로 잘 만들어지면 최고의 결과겠지만 초보자의 단계에선 절대 그럴 수 없는듯 합니다.
WDK를 설치하면 같이 설치되는 WinDbg가 이미 드라이버 설치를 끝난 단계에서만 사용 가능한줄 알았으나 연결 해 놓으면 드라이버 설치 시에 생기는 문제도 알려 줍니다.
기본적으로 드라이버 개발 시에는 개발을 진행하는 PC에서 테스트를 하는 것이 아닌 원격 PC를 이용하여 아무것도 설치되지 않은 PC를 이용하여 진행합니다.
드라이버를 설치 할 PC를 원격 PC로, 개발을 진행하는 PC를 개발PC로 명명하고 진행하겠습니다.
원격 PC에서 개발PC의 접근권한을 허용하기 위해 Command 창을 관리자 권한으로 열어줍니다.
Shift+Ctrl+Enterbcdedit /set debug on
bcdedit /set testsigning on
bcdedit /dbgsettings net hostip:{개발PC IP} port:50000 key:{a.b.c.d}
입력 시 Key의 값을 입력하지 않으면 임의의 키를 생성 해 줍니다.
보안이 필요한 Online 상에서 사용하지만 내부적으로 사용 시에는 직접 쉬운 키를 입력하여 사용합니다.
입력 시에는 .을 이용한 4개 파트를 적어주어야 합니다. Ex. abcd.bcd.ed.aaa (파트1.파트2.파트3.파트4)
Windbg를 설정하기 앞서 MS사에서 제공하는 Symbol들을 저장할 폴더를 만들어야 합니다.
예시로 아래와 같은 폴더를 생성하였습니다. 이 폴더는 Driver Debug를 하면서 필요한 자료이 저장이 됩니다.
C:\sym
C:\sym\websym
그 이후 WDK 를 설치하고 나면 시작에서 WinDbg를 찾을 수 있습니다.
File-Symbol File Path를 열어 아래의 명령어를 입력합니다.C:\sym; srv*C:\sym\symbol*http://msdl.microsoft.com/download/symbolsSave Workspace를 눌러 작업을 저장합시다. Save Workspace As를 통해 다른 특정 이름으로 저장이 가능합니다.위의 주소는 Kernel Debug창에서 Help를 눌러 symbol을 검색하여 나오는 Microsoft public symbol server에서 찾을 수 있습니다.
작업이 완료되었다면 File-Kernel Debug에서 Port와 원격PC에서 설정한 Key값을 입력하면 자동으로 연결이 시작됩니다.
이 때 원격PC를 재부팅하면 드라이버의 생성 과정을 디버깅 할 수 있습니다.
WinDbg를 켜 놓은 상태에서 드라이버 설치를 진행하다 문제가 생겼을 경우 아래와 같이 Report를 받을 수 있습니다.

ed Kd_DEFAULT_MASK 8