WDK(Windows 드라이버 키트) 버전 2004와 함께 Microsoft Visual Studio 2019를 사용하여 Windows 드라이버를 빌드할 수 있습니다. Windows 하드웨어 개발자 센터 키트 및 도구를 다운로드할 수 있습니다.
대부분의 경우 드라이버가 사용자 모드 구성 요소에서 작동하지 않는 한 레거시 커널 모드 드라이버를 Windows 드라이버로 다시 컴파일할 수 있습니다. 레거시 WDM 및 KMDF 드라이버는 변환 없이 Windows 10을 대상으로 하는 Windows 드라이버로 다시 컴파일해야 합니다. 드라이버가 변환 없이 컴파일할 수 있지만 드라이버가 모든 Windows 드라이버 요구 사항을 충족하는 것은 아닙니다. Windows 드라이버 요구 사항에 대한 자세한 내용은 Windows 드라이버 개발 시작을 참조하세요.
반면, 기존 사용자 모드 드라이버는 Windows 드라이버로 컴파일하기 위해 수정이 필요할 수 있습니다. 특히 드라이버 패키지에는 UWP 외부의 종속성이 없어야 합니다. 예를 들어 일부 Win32 API만 UWP의 일부입니다.
기존 드라이버 프로젝트를 Windows 드라이버 프로젝트로 변환
- Visual Studio 2019에서 기존 드라이버 프로젝트를 엽니다.
- 솔루션 탐색기 창에서 솔루션을 길게 누르거나 마우스 오른쪽 단추로 클릭하고 Configuration Manager를 선택합니다. 대상 운영 체제를 Windows 10으로 설정합니다.
- 드라이버 프로젝트를 선택하고 길게(또는 마우스 오른쪽 단추로 클릭) 속성을 선택합니다. 구성 속성-드라이버에서 대상 플랫폼이 Windows 드라이버로 설정되어 있는지 확인합니다.> 데스크톱용 Windows 10 버전에서만 실행되는 드라이버를 빌드하려면 데스크톱을 선택합니다.
- 드라이버를 빌드합니다. 링커 오류가 표시될 수 있습니다.
- 오류 로그를 통해 하나씩 오류를 수정합니다. 가능한 대체 API는 설명서의 개별 참조 페이지를 참조하세요. 교체를 사용할 수 없는 경우 드라이버를 다시 디자인해야 할 수 있습니다.
Microsoft Visual Studio에서 새 Windows 드라이버 프로젝트 만들기
템플릿에서 새 드라이버를 만듭니다(파일-새 Project-Create>> New Project-Project> Type-Driver-Select>> the template of interest).
프로젝트를 만든 후 솔루션 탐색기 창에서 솔루션을 길게 누르거나 마우스 오른쪽 단추로 클릭하고 Configuration Manager를 선택합니다. 활성 솔루션 구성을 원하는 대상 Windows 버전으로 설정하고 활성 솔루션 플랫폼을 Win32 또는 x64로 설정합니다. Arm이 목록에 없으면 새로 만들기...>를 선택하여 <Arm용으로 빌드합니다.
Windows 10을 선택하면 드라이버 모델이 기본적으로 유니버설로 설정됩니다.
드라이버 모델을 수동으로 변경하려면 드라이버 프로젝트를 선택하고 길게(또는 마우스 오른쪽 단추로 클릭) 속성을 선택합니다. 구성 속성->드라이버 설정->일반에서 대상 플랫폼 항목을 찾습니다. Windows 드라이버를 선택합니다. Microsoft Visual Studio는 이 설정을 사용하여 연결할 라이브러리를 결정합니다.
참고 Windows 10 버전 1809 이전 버전의 Windows 드라이버는 빌드할 수 없습니다.
.inf 파일을 수정하여 공급자를 지정해야 할 수 있습니다. 이 토큰은 INF 파일의 문자열 섹션 뒷부분에서 확장되는 %ManufacturerName% 토큰으로 지정됩니다. 예시:
Provider="Contoso"이제 솔루션을 빌드할 수 있습니다. Visual Studio는 필요한 라이브러리에 연결하고 .cat 파일, .inf 파일 및 드라이버 이진 파일을 생성합니다.
Microsoft Visual Studio에서 새 유니버설 애플리케이션 또는 DLL 프로젝트 만들기
- 템플릿에서 새 드라이버를 만들고(파일-새 Project-Create New Project-Project>> Type-Driver->> 관심 있는 템플릿 선택) 드라이버용 빈 데스크톱 응용 프로그램(유니버설) 또는 드라이버용 빈 Dll(유니버설)을 선택합니다.>
- 프로젝트를 만든 후 솔루션 탐색기 창에서 솔루션을 길게 누르거나 마우스 오른쪽 단추로 클릭하고 Configuration Manager를 선택합니다. 활성 솔루션 구성을 원하는 대상 Windows 버전으로 설정하고 활성 솔루션 플랫폼을 Win32 또는 x64로 설정합니다. Arm이 목록에 없으면 새로 만들기...>를 선택하여 <Arm용으로 빌드합니다. Windows 10을 선택하면 애플리케이션 모델이 기본적으로 유니버설로 설정됩니다. 대상 플랫폼을 수동으로 변경하려면 드라이버 프로젝트를 선택하고 길게(또는 마우스 오른쪽 단추로 클릭) 속성을 선택합니다. 구성 속성->드라이버 설정->일반에서 대상 플랫폼 항목을 찾습니다.
- 솔루션을 빌드합니다.
드라이버를 빌드할 때 Visual Studio에서 사용할 수 있는 구성 설정에 대한 자세한 내용은 WDK를 사용하여 드라이버 빌드를 참조하세요.