次の方法で共有


プラットフォーム ツールセット

Windows Driver Kit (WDK) は、MSBuild プラットフォーム ツールセット機能を利用して、ドライバー開発に固有のツールとライブラリを提供します。 MSBuild プラットフォーム ツールセット機能は拡張可能です。 使用するプラットフォーム ツールセットの特定のバージョンは、 PlatformToolset という MSBuild プロパティによって制御されます。 プロジェクトは、プロジェクト ファイルで PlatformToolset プロパティを設定することで、ツールとライブラリを切り替えることができます。

Windows Driver Kit (WDK) 8.1 には、ドライバー開発用の次のプラットフォーム ツールセットが用意されています。

PlatformToolset (WDK 8.1) 用途
WindowsKernelModeDriver8.1 カーネル モード ドライバーとコンポーネントの場合。
WindowsUserModeDriver8.1 ユーザー モード ドライバーとコンポーネントの場合。
WindowsApplicationForDrivers8.1 任意の種類のアプリケーションの場合。 このプラットフォーム ツールセットは、Windows Driver Kit (WDK) for Windows 7 (WDK 7.1) で使用されるビルド オプションとの互換性を提供し、ドライバーと対話するユーザー モード アプリケーションの開発に一般的な既定の設定も使用します。 WDK 7 を使用してビルドされたプロジェクトを移行または変換する場合は、この設定を使用できます。
Visual Studio 2013 (v120) 任意の種類の Windows アプリケーションに使用します (既定)。

Windows Driver Kit (WDK) 8 には、ドライバー開発用の次のプラットフォーム ツールセットが用意されています。 この情報は参照用にのみ提供されます。

PlatformToolset (WDK 8) 用途
WindowsKernelModeDriver8.0 カーネル モード ドライバーとコンポーネントの場合。
WindowsUserModeDriver8.0 ユーザー モード ドライバーとコンポーネントの場合。
WindowsApplicationForDrivers8.0 任意の種類のアプリケーションの場合。 このプラットフォーム ツールセットは、WDK for Windows 7 (WDK 7.1) で使用されるビルド オプションとの互換性を提供します。 WDK 7 を使用してビルドされたプロジェクトを移行または変換する場合は、この設定を使用できます。
Visual Studio 2012 (v110) 任意の種類の Windows アプリケーションに使用します (既定)。

手記 Visual Studio で使用可能な Windows ドライバー テンプレートの 1 つからドライバーを作成すると、 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 プロパティは、ビルドされるバイナリのターゲット拡張機能と出力の種類を制御します。 このプロパティに使用できる値の一部は、 ApplicationDynamicLibraryStaticLibraryおよび Utility です

WDK は、カーネル モード ドライバーをビルドする ドライバー と呼ばれるこのプロパティの新しい値を導入します。 このプロパティを Driver に設定すると、MSBuild によってドライバー ファイルが生成され、その拡張子が .sys されます。 この例では、 PlatformToolset プロパティを WindowsKernelModeDriver8.1 に設定して、カーネル モード ドライバーをビルドします。 WindowsKernelModeDriver8.1 は、 DriverConfigurationType を必要とする唯一の WDK プラットフォーム ツールセットです。 この例では、 DriverType が KMDF に設定されています。

ドライバーの PlatformToolset プロパティについて

PlatformToolset は、特定のプラットフォームのドライバーまたはカーネル モード コンポーネントを構築するためにプラットフォームを拡張および変更するために連携するプロパティ シート、ターゲット、ツール、タスクのセットです。 ドライバーと関連コンポーネントとアプリケーションの場合、 PlatformToolset プロパティはプロジェクト ファイルで WindowsKernelModeDriver8.1WindowsUserModeDriver8.1、または WindowsApplicationForDrivers8.1 に設定する必要があります。 これらのプラットフォーム ツールセットは、既存の Visual Studio C\C++ ツール チェーン コンパイラとリンカーを他の WDK 固有のビルド ツールと共に拡張し、WDK ヘッダーとライブラリをターゲットにするように設計されています。 WindowsApplicationForDrivers8.1 ツールセットは、WDK for Windows 7 (WDK 7.1) で使用できるビルド オプション設定と互換性があり、ドライバーと対話するユーザー モード アプリケーションの開発に一般的な既定の設定も提供します。

プラットフォーム ツールセットには、ドライバー プロジェクトをビルドするための既定のプラットフォーム レベルの設定とターゲットがあります。 コンパイラやリンカーなどのビルド ツールには、既定のスイッチ、WDK の INCLUDE パスや LIBRARY パスなどのシステム情報、Unicode または ANSI 文字列を使用してドライバー プロジェクトをビルドするときに設定するさまざまなプロパティなどの機能設定を使用します。 デスクトップ用の Windows アプリケーションを開発する場合は、 WindowsKernelModeDriver8.1WindowsUserModeDriver8.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 がドライバー開発用のプラットフォーム ツールセットを有効にするためにファイルをインストールする場所をまとめたものです。

Path 変数 説明

$(VCTargetsPath)

既定では、$(VCTargetsPath) はレジストリで $(MSBuildExtensionsPath)<em><FOLDER><MSBUILDSYNTAXVERSION>) として定義されます。

バージョン番号は、新しい構文を持ち、後で MSBuild を必要とする同じプラットフォームに対して新しいビルド プロセスが使用される場合に含まれます。

<FOLDER>、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 です。<Platform>。WindowsKernelModeDriver8.1.props と Microsoft.Cpp。<Platform>。WindowsUserModeDriver8.1.props。WDK 固有の複数の 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

すべてのドライバー固有のターゲット ファイル。 このファイルは、ドライバーをビルドするターゲットを識別します。