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

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

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로 변경한다.
저작자표시 (새창열림)

'Windows > DeviceDriver' 카테고리의 다른 글

06. 프로그램 실행 제어  (0) 2021.04.25
05. 5편 구조체분석1 (DRIVER_OBJECT, UNICODE_STRING)  (0) 2021.04.25
4. 프로세스 강제 종료 방지 연습  (0) 2021.04.20
3. 간단한 드라이버와 디버깅  (0) 2021.04.20
2. 윈도우 디버거 환경을 준비하자  (0) 2021.04.20
'Windows/DeviceDriver' 카테고리의 다른 글
  • 05. 5편 구조체분석1 (DRIVER_OBJECT, UNICODE_STRING)
  • 4. 프로세스 강제 종료 방지 연습
  • 3. 간단한 드라이버와 디버깅
  • 2. 윈도우 디버거 환경을 준비하자
Caniro
Caniro
  • Caniro
    Minimalism
    Caniro
  • 전체
    오늘
    어제
    • 분류 전체보기 (317)
      • Algorithm (13)
        • 알기 쉬운 알고리즘 (10)
        • Search (1)
        • Sort (2)
      • Arduino (0)
      • C++ (185)
        • Class (46)
        • Exception (6)
        • Library (51)
        • Overloading (10)
        • SmartPointer (5)
        • Syntax (33)
        • TBC++ (23)
        • Templates (9)
        • VisualStudio (2)
      • Embedded (1)
      • Git (4)
      • Java (5)
      • Linux (16)
        • Error (1)
        • Linux Structure (11)
      • MacOS (7)
      • OS (1)
        • Concurrency (1)
      • Python (21)
        • Class (1)
        • Function (2)
        • Syntax (17)
      • Raspberrypi (9)
      • Review (1)
      • Utility (12)
        • VSCode (5)
        • VirtualBox (3)
      • Web (8)
        • Nginx (1)
        • React (3)
        • Django (1)
      • Windows (20)
        • Registry (3)
        • WSL (1)
        • DeviceDriver (6)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    windows
    스프링 프레임워크 핵심 기술
    Workspace
    SunOS 5.1
    Solaris 10
    unix
    백기선
    vscode
    Windows 11
    스프링
    EXCLUDE
    spring
    로지텍 마우스 제스처
    윈도우 명령어
    dism
    SFC
    시스템 복구
    MacOS
    윈도우
    java
    citrix workspace
    KakaoTalk
    제외
    알림
    mspaint
    logi options
    그림판
    맥북 카카오톡 알림 안뜸
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Caniro
1. 윈도우 드라이버 개발 환경 준비
상단으로

티스토리툴바