Toolset Platform

Windows Driver Kit (WDK) memanfaatkan fitur toolset platform MSBuild untuk menyediakan alat dan pustaka yang khusus untuk pengembangan driver. Set fitur toolset untuk platform MSBuild dapat diperluas. Versi spesifik dari toolset platform yang ingin Anda gunakan dikontrol oleh properti MSBuild yang disebut PlatformToolset. Proyek dapat beralih antara alat dan pustaka dengan mengatur properti PlatformToolset dalam file proyek.

Windows Driver Kit (WDK) 8.1 menyediakan toolset platform berikut untuk pengembangan driver.

PlatformToolset (WDK 8.1) Gunakan
WindowsKernelModeDriver8.1 Untuk driver dan komponen mode kernel.
WindowsUserModeDriver8.1 Untuk driver dan komponen mode pengguna.
WindowsApplicationForDrivers8.1 Untuk semua jenis aplikasi. Toolset platform ini memberikan kompatibilitas dengan opsi build yang digunakan dalam Windows Driver Kit (WDK) untuk Windows 7 (WDK 7.1), dan juga menggunakan pengaturan default yang umum untuk pengembangan aplikasi mode pengguna yang berinteraksi dengan driver. Anda mungkin menggunakan pengaturan ini jika Anda memigrasikan atau mengonversi proyek yang dibangun menggunakan WDK 7.
Visual Studio 2013 (v120) Gunakan untuk semua jenis aplikasi Windows (default).

Windows Driver Kit (WDK) 8 menyediakan toolset platform berikut untuk pengembangan driver. Informasi ini disediakan hanya untuk referensi.

PlatformToolset (WDK 8) Gunakan
WindowsKernelModeDriver8.0 Untuk driver dan komponen mode kernel.
WindowsUserModeDriver8.0 Untuk driver dan komponen mode pengguna.
WindowsApplicationForDrivers8.0 Untuk semua jenis aplikasi. Toolset platform ini memberikan kompatibilitas dengan opsi build yang digunakan dalam WDK untuk Windows 7 (WDK 7.1). Anda mungkin menggunakan pengaturan ini jika Anda memigrasikan atau mengonversi proyek yang dibangun menggunakan WDK 7.
Visual Studio 2012 (v110) Gunakan untuk semua jenis aplikasi Windows (default).

Nota Jika Anda membuat driver dari salah satu templat driver Windows yang tersedia di Visual Studio, properti PlatformToolset diatur untuk Anda. Anda juga dapat memilih PlatformToolset dengan menggunakan halaman properti proyek driver di Visual Studio. Menyiapkan Toolset Platform di Visual Studio

  1. Buka halaman properti untuk proyek driver Anda. Pilih dan tahan (atau klik kanan) proyek driver di Penjelajah Solusi dan pilih Properti.
  2. Di halaman properti untuk proyek driver, pilih Properti Konfigurasi lalu pilih Umum.
  3. Pilih properti Platform Toolset untuk proyek dari daftar drop-down.

Contoh - Mengatur properti PlatformToolset dalam file proyek Visual Studio (.vcxproj)

Contoh berikut menunjukkan bagaimana properti PlatformToolset diatur dalam file proyek.

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

Properti ConfigurationType mengontrol ekstensi target dan jenis output untuk biner yang sedang dibangun. Beberapa nilai yang mungkin untuk properti ini adalah Aplikasi, DynamicLibrary, StaticLibrary, dan Utilitas.

WDK memperkenalkan nilai baru untuk properti ini yang disebut Driver untuk membangun driver mode kernel. Jika Anda mengatur properti ini ke Driver, MSBuild akan menghasilkan file driver dengan .sys sebagai ekstensinya. Dalam contoh, properti PlatformToolset diatur ke WindowsKernelModeDriver8.1 untuk membangun driver mode kernel. WindowsKernelModeDriver8.1 adalah satu-satunya toolset platform WDK yang memerlukan DriverConfigurationType. Dalam contoh ini, DriverType diatur ke KMDF.

Tentang properti PlatformToolset untuk driver

PlatformToolset adalah sekumpulan lembar properti, target, alat, dan tugas yang bekerja sama untuk memperluas dan memodifikasi platform untuk membangun driver atau komponen mode kernel untuk platform tertentu. Untuk driver dan komponen dan aplikasi terkait, properti PlatformToolset harus diatur ke WindowsKernelModeDriver8.1, WindowsUserModeDriver8.1, atau WindowsApplicationForDrivers8.1 dalam file proyek. Toolset platform ini dirancang untuk memperluas pengkompilasi dan linker rantai alat Visual Studio C\C++ yang ada dengan alat build khusus WDK lainnya dan menargetkan header dan pustaka WDK. Toolset WindowsApplicationForDrivers8.1 menyediakan kompatibilitas dengan pengaturan opsi build yang tersedia di WDK untuk Windows 7 (WDK 7.1), dan juga pengaturan default yang umum untuk pengembangan aplikasi mode pengguna yang berinteraksi dengan driver.

Platform Toolset memiliki pengaturan dan target tingkat platform default untuk membangun proyek driver apa pun. Anda menggunakan sakelar default untuk alat pembangunan seperti kompilator atau linker, informasi sistem seperti jalur INCLUDE atau LIBRARY untuk WDK, dan pengaturan fitur seperti berbagai properti yang dapat disesuaikan saat menggunakan string Unicode atau ANSI untuk membangun proyek driver. Jika Anda mengembangkan aplikasi Windows untuk desktop, jangan gunakan toolset platform WindowsKernelModeDriver8.1, WindowsUserModeDriver8.1, atau WindowsApplicationForDrivers8.1 . Sebagai gantinya, gunakan toolset platform Visual Studio 2013 (v120).

Secara default, properti PlatformToolset adalah Visual Studio 2013 (v120) untuk proyek dan proyek C++ mode pengguna Win32 yang baru dibuat yang dikonversi ke Visual Studio 2013. Dalam kedua kasus, properti PlatformToolset tidak ditulis ke file proyek.

Saat Anda memilih salah satu toolset platform untuk driver, properti berikut ditetapkan.

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

Nota Ketika UseEnv tidak diatur ke TRUE, PATH, LIB, INCLUDE, LIBPATH akan diatur dari nilai properti yang sesuai di toolset platform. Ketika UseEnv diatur ke TRUE, seperti dalam sistem build lama, nilai dari variabel lingkungan untuk PATH, INCLUDE, LIB, dan LIBPATH akan digunakan sebagai gantinya.

Di mana WDK menginstal file yang mendukung set alat platform khusus untuk driver

Tabel berikut ini meringkas tempat WDK menginstal file untuk mengaktifkan toolset platform untuk pengembangan driver.

Variabel lingkungan jalur Deskripsi

$(VCTargetsPath)

Secara default, $(VCTargetsPath) didefinisikan dalam registri sebagai $(MSBuildExtensionsPath)<em><FOLDER<>MSBUILDSYNTAXVERSION)>

Nomor versi disertakan jika proses build baru digunakan untuk platform yang sama, yang memiliki sintaks baru dan memerlukan MSBuild yang lebih baru.

<FOLDER> adalah folder Microsoft.Cpp - $(MSBuildExtensionsPath)\Microsoft.Cpp\4.0\v120.

Ini disebut versi sintaks daripada versi alat. Ini adalah versi rakitan dari Microsoft.Build.Engine pertama yang mendukung semua sintaks yang diperlukan. Microsoft.Cpp menunjukkan satu-satunya folder tempat Visual Studio akan mencari platform.

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

Folder opsional yang biasanya tidak berisi file. Anda dapat menyesuaikan platform dengan menyimpan file format MSBuild di folder ini. Mereka akan diimpor di bagian bawah file pengaturan platform, seperti yang ditunjukkan oleh folder tempat mereka saat ini berada. Urutan file yang diimpor dari lokasi ini tidak ditentukan. File yang MSBuild buat adalah $(VCTargetsPath)\Platforms$(Platform)\ImportAfter\Microsoft.Cpp.<Platform>.WindowsKernelModeDriver8.1.props dan Microsoft.Cpp.<Platform>.WindowsUserModeDriver8.1.props, yang mengimpor beberapa file props khusus WDK.

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

Untuk WDK:

$(PlatformToolset) harus diatur ke WindowsKernelModeDriver8.1 untuk membangun driver mode kernel, diatur ke WindowsUserModeDriver8.1 untuk membangun driver mode pengguna, dan diatur ke WindowsApplicationForDrivers8.1 untuk kompatibilitas dengan opsi build yang digunakan di Windows 7 WDK (WDK 7).

Direktori PlatformToolset

Misalnya, C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\v120\Platforms\Win32\PlatformToolsets\WindowsKernelModeDriver8.1.

Direktori PlatformToolsets memungkinkan Anda menambahkan jenis file lain nanti - di subfolder mereka sendiri.

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

File Platform Toolset Props

Mengimpor file properti untuk membangun driver. Juga mengimpor file alat peraga v120.

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

File Target Toolset Platform

Mengimpor file target untuk membangun driver. File-file ini berisi <tag UsingTask> untuk menarik tugas WDK. Fitur ini juga mengimpor target v120.

$(WDKContentRoot)\build.props

Semua file alat peraga khusus driver. File-file ini berisi pengaturan default untuk membangun driver.

$(WDKContentRoot)\build*.targets

Semua file target yang spesifik untuk driver. File ini mengidentifikasi target untuk membangun driver.