다음을 통해 공유


플랫폼 도구 집합

WDK(Windows 드라이버 키트)는 MSBuild 플랫폼 도구 집합 기능을 활용하여 드라이버 개발과 관련된 도구와 라이브러리를 제공합니다. MSBuild 플랫폼 도구 집합 기능은 확장할 수 있습니다. 사용하려는 플랫폼 도구 집합의 특정 버전은 PlatformToolset이라는 MSBuild 속성에 의해 제어됩니다. 프로젝트는 프로젝트 파일에서 PlatformToolset 속성을 설정하여 도구와 라이브러리 간에 전환할 수 있습니다.

WDK(Windows 드라이버 키트) 8.1은 드라이버 개발을 위한 다음 플랫폼 도구 집합을 제공합니다.

PlatformToolset (WDK 8.1) Windows Server Update Services와 함께
WindowsKernelModeDriver8.1 커널 모드 드라이버 및 구성 요소의 경우.
WindowsUserModeDriver8.1 사용자 모드 드라이버 및 구성 요소의 경우.
WindowsApplicationForDrivers8.1 모든 유형의 애플리케이션에 대해. 이 플랫폼 도구 집합은 Windows 7(WDK 7.1)용 WDK(Windows 드라이버 키트)에 사용되는 빌드 옵션과 호환성을 제공하며 드라이버와 상호 작용하는 사용자 모드 애플리케이션 개발에 공통적인 기본 설정을 사용합니다. WDK 7을 사용하여 빌드된 프로젝트를 마이그레이션하거나 변환하는 경우 이 설정을 사용할 수 있습니다.
Visual Studio 2013(v120) 모든 유형의 Windows 애플리케이션에 를 사용합니다(기본값).

WDK(Windows 드라이버 키트) 8은 드라이버 개발을 위한 다음 플랫폼 도구 집합을 제공했습니다. 이 정보는 참조용으로만 제공됩니다.

PlatformToolset (WDK 8) Windows Server Update Services와 함께
WindowsKernelModeDriver8.0 커널 모드 드라이버 및 구성 요소의 경우.
WindowsUserModeDriver8.0 사용자 모드 드라이버 및 구성 요소의 경우.
WindowsApplicationForDrivers8.0 모든 유형의 애플리케이션에 대해. 이 플랫폼 도구 집합은 WDK for Windows 7(WDK 7.1)에 사용되는 빌드 옵션과의 호환성을 제공합니다. WDK 7을 사용하여 빌드된 프로젝트를 마이그레이션하거나 변환하는 경우 이 설정을 사용할 수 있습니다.
Visual Studio 2012(v110) 모든 유형의 Windows 애플리케이션에 를 사용합니다(기본값).

참고 Visual Studio에서 사용 가능한 Windows 드라이버 템플릿 중 하나에서 드라이버를 만드는 경우 PlatformToolset 속성이 설정됩니다. Visual Studio에서 드라이버 프로젝트 속성 페이지를 사용하여 PlatformToolset 을 선택할 수도 있습니다. Visual Studio에서 플랫폼 도구 집합 설정

  1. 드라이버 프로젝트의 속성 페이지를 엽니다. 솔루션 탐색기 드라이버 프로젝트를 길게 누르거나 마우스 오른쪽 단추로 클릭하고 속성을 선택합니다.
  2. 드라이버 프로젝트의 속성 페이지에서 구성 속성을 선택한 다음 일반을 선택합니다.
  3. 드롭다운 목록에서 프로젝트의 플랫폼 도구 집합 속성을 선택합니다.

예제 - Visual Studio 프로젝트 파일에서 PlatformToolset 속성 설정(.vcxproj)

다음 예제에서는 PlatformToolset 속성이 프로젝트 파일에서 설정되는 방법을 보여 줍니다.

<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"
      Label="Configuration">
  <ConfigurationType>Driver</ConfigurationType>
  <DriverType>KMDF</DriverType>
  <PlatformToolset>WindowsKernelModeDriver8.1</PlatformToolset>
</PropertyGroup>

ConfigurationType 속성은 빌드 중인 이진 파일에 대한 대상 확장 및 출력 형식을 제어합니다. 이 속성에 사용할 수 있는 값 중 일부는 Application, DynamicLibrary, StaticLibraryUtility입니다.

WDK는 커널 모드 드라이버를 빌드하기 위해 Driver 라는 이 속성에 대한 새 값을 도입합니다. 이 속성을 Driver로 설정하면 MSBuild는 확장명으로 .sys 드라이버 파일을 생성합니다. 이 예제에서 PlatformToolset 속성은 커널 모드 드라이버를 빌드하기 위해 WindowsKernelModeDriver8.1 로 설정됩니다. WindowsKernelModeDriver8.1DriverConfigurationType이 필요한 유일한 WDK 플랫폼 도구 집합입니다. 이 예제에서는 DriverType 이 KMDF로 설정됩니다.

드라이버의 PlatformToolset 속성 정보

PlatformToolset은 특정 플랫폼에 대한 드라이버 또는 커널 모드 구성 요소를 빌드하기 위해 플랫폼을 확장하고 수정하기 위해 함께 작동하는 속성 시트, 대상, 도구 및 작업 집합입니다. 드라이버 및 관련 구성 요소 및 애플리케이션의 경우 프로젝트 파일에서 PlatformToolset 속성을 WindowsKernelModeDriver8.1, WindowsUserModeDriver8.1 또는 WindowsApplicationForDrivers8.1 로 설정해야 합니다. 이러한 플랫폼 도구 집합은 기존 Visual Studio C\C++ 도구 체인 컴파일러 및 링커를 다른 WDK 관련 빌드 도구와 함께 확장하고 WDK 헤더 및 라이브러리를 대상으로 하도록 설계되었습니다. WindowsApplicationForDrivers8.1 도구 집합은 WDK for Windows 7(WDK 7.1)용 WDK에서 사용할 수 있었던 빌드 옵션 설정과 호환성을 제공하며 드라이버와 상호 작용하는 사용자 모드 애플리케이션 개발에 공통적인 기본 설정도 제공합니다.

플랫폼 도구 집합에는 드라이버 프로젝트를 빌드하기 위한 기본 플랫폼 수준 설정과 대상이 있습니다. 컴파일러 또는 링커와 같은 빌드 도구, WDK의 INCLUDE 또는 LIBRARY 경로와 같은 시스템 정보 및 유니코드 또는 ANSI 문자열을 사용하여 드라이버 프로젝트를 빌드할 때 설정할 다양한 속성과 같은 기능 설정에 기본 스위치를 사용합니다. 데스크톱용 Windows 애플리케이션을 개발하는 경우 WindowsKernelModeDriver8.1, WindowsUserModeDriver8.1 또는 WindowsApplicationForDrivers8.1 플랫폼 도구 집합을 사용하지 마세요. 대신 Visual Studio 2013(v120) 플랫폼 도구 집합을 사용합니다.

기본적으로 PlatformToolset 속성은 새로 만든 Win32 사용자 모드 C++ 프로젝트와 Visual Studio 2013 변환된 프로젝트에 대해 Visual Studio 2013(v120)입니다. 두 경우 모두 PlatformToolset 속성은 프로젝트 파일에 기록되지 않습니다.

드라이버용 플랫폼 도구 집합 중 하나를 선택하면 다음 속성이 설정됩니다.

  • ExecutablePath 및 NativeExecutablePath(PATH)
  • IncludePath(INCLUDE)
  • ReferencePath(LIBPATH)
  • LibraryPath(LIB)
  • SourcePath
  • ExcludedPath

참고UseEnvTRUE로 설정되지 않은 경우 PATH, LIB, INCLUDE, LIBPATH는 플랫폼 도구 집합의 해당 속성 값에서 설정됩니다. UseEnvTRUE로 설정된 경우 이전 빌드 시스템에서와 같이 PATH, INCLUDE, LIB 및 LIBPATH에 대한 환경 변수의 값이 대신 사용됩니다.

WDK가 드라이버별 플랫폼 도구 집합을 사용하도록 설정하는 파일을 설치하는 위치

다음 표에는 WDK가 파일을 설치하여 드라이버 개발을 위한 플랫폼 도구 집합을 사용하도록 설정하는 위치가 요약되어 있습니다.

경로 변수 Description

$(VCTargetsPath)

기본적으로 $(VCTargetsPath)는 레지스트리에서 $(MSBuildExtensionsPath)<em><FOLDER<>MSBUILDSYNTAXVERSION>)로 정의됩니다.

버전 번호는 새 빌드 프로세스가 새 구문이 있고 이후 MSBuild가 필요한 동일한 플랫폼에 사용되는 경우에 포함됩니다.

폴더>는<Microsoft.Cpp 폴더 - $(MSBuildExtensionsPath)\Microsoft.Cpp\4.0\v120입니다.

이를 도구 버전이 아닌 구문 버전이라고 합니다. 필요한 모든 구문을 지원하는 첫 번째 Microsoft.Build.Engine 의 어셈블리 버전입니다. Microsoft.Cpp 는 Visual Studio에서 플랫폼을 찾을 유일한 폴더를 나타냅니다.

$(VCTargetsPath)\Platforms$(Platform)\ImportAfter.props

일반적으로 파일을 포함하지 않는 선택적 폴더입니다. 이 폴더에 MSBuild 형식 파일을 저장하여 플랫폼을 사용자 지정할 수 있습니다. 현재 있는 폴더에 표시된 대로 플랫폼 설정 파일의 맨 아래에서 가져옵니다. 이 위치에서 파일을 가져오는 순서는 정의되지 않습니다. MSBuild에서 만드는 파일은 $(VCTargetsPath)\Platforms$(Platform)\ImportAfter\Microsoft.Cpp입니다. <플랫폼>. WindowsKernelModeDriver8.1.props 및 Microsoft.Cpp. <플랫폼>. 여러 WDK 관련 props 파일을 가져오는 WindowsUserModeDriver8.1.props.

$(VCTargetsPath)\Platforms$(Platform)\PlatformToolsets$(PlatformToolset)</p>

WDK의 경우:

커널 모드 드라이버를 빌드하려면 $(PlatformToolset)WindowsKernelModeDriver8.1 로 설정하고, 사용자 모드 드라이버를 빌드하기 위해 WindowsUserModeDriver8.1 로 설정하고, Windows 7 WDK(WDK 7)에서 사용되는 빌드 옵션과의 호환성을 위해 WindowsApplicationForDrivers8.1 로 설정해야 합니다.

PlatformToolset 디렉터리

예를 들어 C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\v120\Platforms\Win32\PlatformToolsets\WindowsKernelModeDriver8.1입니다.

PlatformToolsets 디렉터리를 사용하면 나중에 다른 형식의 파일을 자체 하위 폴더에 추가할 수 있습니다.

Microsoft.Cpp.$(Platform).$(PlatformToolset).props

플랫폼 도구 집합 Props 파일

props 파일을 가져와 드라이버를 빌드합니다. v120 props 파일도 가져옵니다.

Microsoft.Cpp.$(Platform).$(PlatformToolset).targets

플랫폼 도구 집합 대상 파일

대상 파일을 가져와서 드라이버를 빌드합니다. 이러한 파일에는 WDK 작업을 끌어오는 UsingTask> 태그가 포함되어 <있습니다. 이 기능은 v120 대상도 가져옵니다.

$(WDKContentRoot)\build.props

모든 드라이버 관련 props 파일입니다. 이러한 파일에는 드라이버를 빌드하기 위한 기본 설정이 포함되어 있습니다.

$(WDKContentRoot)\build*.targets

모든 드라이버 관련 대상 파일입니다. 이 파일은 드라이버를 빌드할 대상을 식별합니다.