Windows/DeviceDriver 2021. 4. 20. 01:28

1. 윈도우 드라이버 개발 환경 준비


WDK(Windows Driver Kit) 설치

  • https://docs.microsoft.com/en-us/windows-hardware/drivers/download-the-wdk 의 내용을 따라가면 된다.

  • Step 1 : Visual Studio 2019 설치

    • 설치할 때 Desktop development with C++을 선택하고, 우측 Installation details의 모든 항목을 체크하여 설치하는 것을 추천한다.

    • 다운로드 속도가 너무 느리면 VPN을 사용하거나, MS 다운로드 서버의 IP를 변경하면 된다고 한다.

      • 계속 You require permission from SYSTEM to make changes to this file 오류가 발생했는데, 백신이 실시간 감시로 차단하고 있었다...
  • Step 1.5 : 윈도우 10 2004 버전을 위한 SDK 10.0.19041.685 설치

    • 나는 왜인지 모르겠는데 VS에 같이 설치되어 있었다.
  • Step 2 : WDK 다운로드

  • EWDK는 IDE 없이 CLI로 윈도우 디바이스 드라이버를 개발할 수 있도록 제공하는 것이다.


WDK 7600 설치

  • 비주얼 스튜디오 없이 standalone으로 나온, 구버전의 WDK이다.

  • 도움말이 굉장히 훌륭해서, MSDN에 검색하지 않고 이 도움말을 활용하면 좋다고 한다.

  • 설치

    • 공식 사이트(https://www.microsoft.com/en-us/download/details.aspx?id=11800)에서 iso 파일을 받는다.

    • Explorer로 iso 파일을 열어서 마운트시킨다.

    • KitSetup.exe 파일을 실행하고, Help (Documentation Collection)만 체크하고 설치를 진행한다.

    • WDK Documentation을 검색해서 실행시킬 수 있다.

  • 왼쪽 아래의 Index 탭에서 검색하여 원하는 내용을 찾을 수 있다.


VirtualBox에 윈도우10 설치

  • 나는 윈도우 10 iso 이미지를 공식 홈페이지에서 다운로드 받은 후, VirtualBox에서 설치했다.

  • 강의에서는 최신 버전의 윈도우가 무겁기 때문에 구버전의 윈도우 10을 구해서 가볍고 빠르게 사용하기를 추천한다.


프로젝트 생성

  • VS에서 Kernel Mode Driver, USB(KMDF)를 선택하여 프로젝트를 생성한다.

  • x64로 변경 후 빌드해보면, 다음과 같은 에러가 발생한다.

    error MSB8040: Spectre-mitigated libraries are required for this project. Install them from the Visual Studio installer (Individual components tab) for any toolsets and architectures being used. Learn more: https://aka.ms/Ofhn4c
  • 이는 보안 요소에 관한 에러이고, 당장은 신경쓰지 않아도 되므로 설정에서 비활성화한다.

    • 프로젝트의 속성에서 C/C++ - Code Generation의 맨 아래 Spectre Mitigation 항목을 Disabled로 변경한다.