Visual Studio 또는 MSBuild를 사용하여 드라이버 빌드

이 항목에서는 Visual Studio 개발 환경을 사용하거나 Visual Studio 명령 프롬프트 창과 MSBuild(Microsoft Build Engine)를 사용하여 명령줄에서 드라이버를 빌드하는 방법에 대한 지침을 제공합니다.

Windows용 드라이버를 개발하려면 Visual Studio에 SDK 및 WDK를 설치하고 드라이버 설정을 구성해야 합니다. 컴퓨터의 SDK 및 WDK 버전이 일치하는지 확인합니다.

Visual Studio를 사용하여 드라이버 빌드

Visual Studio에서 프로젝트 또는 솔루션을 빌드하는 것과 동일한 방식으로 드라이버를 빌드합니다. 드라이버 템플릿을 사용하여 새 드라이버 프로젝트를 만들 때 템플릿은 기본(활성) 프로젝트 구성 및 기본(활성) 솔루션 빌드 구성을 정의합니다.

빌드 구성을 관리하고 편집하는 방법에 대한 자세한 내용은 Visual Studio에서 빌드를 참조 하세요.

KMDF 드라이버 설정

VS 2022에서 드라이버 설정을 구성하려면 드라이버 프로젝트를 마우스 오른쪽 단추로 클릭하고 속성을 선택한 다음 속성 -구성 속성 ->>드라이버 설정 이동합니다.

Visual Studio KMDF 드라이버 설정.

대상 OS 버전

대상 OS 버전은 드라이버가 개발 중인 Windows 버전을 나타냅니다. 대상 OS 버전을 드라이버에서 지원하는 가장 낮은 버전으로 설정합니다. 예를 들어 Windows 10용 드라이버는 Windows 10 이상 버전을 모두 지원해야 합니다.

이러한 항목의 지침에 따라 드라이버 패키지가 여러 버전의 Windows를 지원하도록 올바르게 작성되었는지 확인합니다.

대상 플랫폼

Windows 대상 플랫폼, 유니버설 드라이버, 데스크톱 드라이버Windows 드라이버에 대한 3가지 분류가 있습니다.

  1. 유니버설 드라이버는 다음을 수행해야 합니다.

    • coinstaller를 사용하지 않습니다.
    • DCH 디자인 원칙을 준수해야 합니다. DCH 디자인 원칙 및 모범 사례를 참조 하세요.
    • 전달 InfVerif /u
  2. 데스크톱 드라이버는 다음을 수행해야 합니다.

    • 모든 유니버설 드라이버 요구 사항을 충족합니다.
    • Windows WHCP(하드웨어 호환성 프로그램) 요구 사항을 준수 해야 합니다.
    • 을 전달합니다 InfVerif /h.

    데스크톱 드라이버 조건을 충족하는 드라이버는 Windows 로고 인증이며 Windows 업데이트 프로그램에 추가할 수 있습니다.

  3. Windows 드라이버는 다음을 수행해야 합니다.

    • 모든 데스크톱 드라이버 요구 사항을 충족합니다.
    • 드라이버 패키지 격리 요구 사항을 완벽하게 준수해야 합니다.
    • 전달 InfVerif /w
    • Windows 드라이버는 가장 제한적인 대상 플랫폼 선택이며 모든 안정성 및 서비스 가능성 요구 사항을 충족합니다.

다음 표에서는 드라이버 분류를 요약합니다.

기능 유니버설 드라이버 데스크톱 드라이버 Windows 드라이버
Infverif 스위치 InfVerif /u InfVerif /h InfVerif /w
현재 WHCP 요구 사항 아니요
Windows OS의 모든 변형을 지원합니다. 아니요 없음
X64/ARM64 지원
APIVALIDATOR 규정 준수 필요 아니요 없음
데스크톱 OS 지원(대상 OS 버전)
GitHub 드라이버 샘플 지원 아니요

드라이버 구성

드라이버를 빌드할 때 WDK 또는 EWDK를 사용하여 Visual Studio에서 플랫폼 아키텍처 및 NT_TARGET_VERSION 올바르게 설정되었는지 확인합니다. 개발을 위한 기본 솔루션 빌드 구성은 디버그Win64입니다.

  1. 솔루션 탐색기에서 솔루션을 선택하고 길게(또는 마우스 오른쪽 단추로 클릭) 구성 관리자를 선택합니다.
  2. Configuration Manager에서 활성 솔루션 구성(예: 디버그 또는 릴리스) 및 관심 있는 빌드 유형에 해당하는 활성 솔루션 플랫폼(예: Win64)을 선택합니다.
  3. 프로젝트를 선택하고 길게(또는 마우스 오른쪽 단추로 클릭) 속성을 선택합니다. 드라이버 설정 ->General으로 이동하고 대상 OS 버전대상 플랫폼을 설정합니다.
  4. 드라이버 또는 드라이버 패키지에 대한 프로젝트 속성을 구성합니다. 배포, 드라이버 서명 또는 기타 작업에 대한 속성을 설정할 수 있습니다. 자세한 내용은 드라이버 및 드라이버 패키지에 대한 프로젝트 속성 구성을 참조하세요.

드라이버를 빌드하려면

  1. Visual Studio에서 드라이버 프로젝트 또는 솔루션을 엽니다.
  2. 빌드 메뉴에서 솔루션 빌드(Ctrl+Shift+B)를 선택합니다.
  3. 빌드 출력 창에서 컴파일 시간 오류를 봅니다.

명령줄을 사용하여 드라이버 빌드(MSBuild)

Visual Studio 명령 프롬프트 창 및 MSBuild(Microsoft Build Engine)를 사용하여 명령줄에서 드라이버를 빌드할 수 있습니다.

Visual Studio 명령 프롬프트 창을 사용하여 드라이버를 빌드하려면

  1. VS2022용 개발자 명령 프롬프트 창을 엽니다.

    이 창에서 MSBuild.exe 사용하여 프로젝트(.vcxproj) 또는 솔루션(.sln) 파일을 지정하여 Visual Studio 프로젝트를 빌드할 수 있습니다.

  2. 프로젝트 디렉터리로 이동하고 대상에 대한 MSBuild 명령을 입력합니다.

    예를 들어 기본 플랫폼 및 구성을 사용하여 MyDriver.vcxproj 이라는 Visual Studio 드라이버 프로젝트의 클린 빌드를 수행하려면 프로젝트 디렉터리로 이동하고 다음 MSBuild 명령을 입력합니다.

    msbuild /t:clean /t:build .\MyDriver.vcxproj
    

    특정 구성 및 플랫폼을 지정하려면 다음을 사용합니다.

    msbuild /t:clean /t:build ProjectFile /p:Configuration=<Debug|Release> /p:Platform=architecture /p:TargetPlatformVersion=a.b.c.d /p:TargetVersion=OS    
    

    다음 명령은 "디버그" 구성, "Win32" 플랫폼 및 Windows 10용 드라이버를 빌드합니다.

    msbuild /t:clean /t:build .\MyDriver.vcxproj /p:Configuration="Debug" /p:Platform=Win32 /p:TargetVersion="Windows10" /p:TargetPlatformVersion="10.0.10010.0"
    

    TargetPlatformVersion 설정은 선택 사항이며 빌드할 키트 버전을 지정합니다. 기본값은 최신 키트 버전입니다.

드라이버 및 드라이버 패키지에 대한 프로젝트 속성 구성

속성 페이지를 사용하여 드라이버 및 드라이버 패키지에 대한 옵션을 구성하고 설정합니다. 솔루션을 빌드할 때 자동으로 서명되거나 원격 테스트 컴퓨터에 자동으로 배포되도록 드라이버를 구성하도록 선택할 수 있습니다.

개별 드라이버 또는 전체 드라이버 패키지에 대한 속성을 설정할 수 있습니다. 다음 섹션에서는 드라이버 및 드라이버 패키지에 대해 특별히 구성할 수 있는 몇 가지 사용 가능한 속성을 보여 줍니다.

드라이버 프로젝트 속성

드라이버 패키지 속성

WDK 명령줄 도구 프로젝트 통합

WDK는 빌드 프로세스에 일반적으로 포함되는 여러 명령줄 도구(예: StampinfWPP 전처리기(WPP 추적))를 제공합니다. 이러한 도구는 Visual Studio와 함께 배포되지 않습니다. 이러한 도구를 Visual Studio 빌드 환경과 결합하기 위해 MSBuild에 대한 WDK 작업으로 래핑됩니다. 드라이버 템플릿 중 하나를 사용하거나 변환한 기존 드라이버가 있는 경우 프로젝트에 대한 이러한 속성 페이지가 이미 있을 수 있습니다. 그렇지 않은 경우 프로젝트 또는 솔루션에 관련 파일 형식(예: 메시지 컴파일러의 .mc 또는 .man 파일)을 추가하면 속성 페이지가 프로젝트에 자동으로 추가됩니다. 자세한 내용은 WDK 및 Visual Studio 빌드 환경을 참조 하세요.

드라이버 빌드를 위한 문제 해결 팁

빌드 문제를 해결하기 위해 Visual Studio에서 빌드 출력의 세부 정보를 늘릴 수 있습니다.

  1. 도구 ->옵션을 선택합니다.
  2. 프로젝트 및 솔루션 폴더를 선택하고 빌드 및 실행을 선택합니다.
  3. MSBuild 프로젝트 빌드 출력 세부 정보 표시 및 MSBuild 프로젝트 빌드 로그 파일 세부 정보 표시에 대한 옵션을 변경합니다. 기본적으로 최소로 설정됩니다.

Windows 8 드라이버 업데이트

WDK 8 또는 WDK(Windows 드라이버 키트) 8.1을 사용하여 만든 프로젝트 및 솔루션을 WDK(Windows 드라이버 키트) 10 및 Visual Studio에서 작동하도록 변환할 수 있습니다. 프로젝트 또는 솔루션을 열기 전에 ProjectUpgradeTool실행합니다. ProjectUpgradeTool은 WDK 10을 사용하여 빌드할 수 있도록 프로젝트와 솔루션을 변환합니다.

WDK(Windows 드라이버 키트) 8부터 MSBuild는 Windows 빌드 유틸리티(Build.exe)를 대체했습니다. WDK는 Visual Studio 프로젝트를 빌드하는 데 사용하는 것과 동일한 컴파일러 및 빌드 도구를 사용합니다. 이전 버전의 WDK로 빌드된 드라이버 프로젝트는 Visual Studio 환경에서 작동하도록 변환되어야 합니다. 명령줄에서 변환 유틸리티를 실행하거나 기존 원본에서 새 Visual Studio 프로젝트를 만들어 기존 드라이버를 변환할 수 있습니다. 자세한 내용은 기존 원본 파일 및 WDK 및 Visual Studio 빌드 환경에서 드라이버 만들기를 참조하세요.