平台工具組
Windows 驅動程式套件 (WDK) 利用 MSBuild 平臺工具組功能,提供驅動程式開發特有的工具和程式庫。 MSBuild 平臺工具組功能是可延伸的。 您想要使用的特定平臺工具組版本是由名為 PlatformToolset的 MSBuild 屬性所控制。 專案可以在工具和程式庫之間切換,方法是在專案檔中設定 PlatformToolset 屬性。
Windows 驅動程式套件 (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 驅動程式套件 (WDK) 8 提供下列用於驅動程式開發的平臺工具組。 此資訊僅供參考之用。
PlatformToolset (WDK 8) | 用途 |
---|---|
WindowsKernelModeDriver8.0 | 針對核心模式驅動程式和元件。 |
WindowsUserModeDriver8.0 | 針對使用者模式驅動程式和元件。 |
WindowsApplicationForDrivers8.0 | 針對任何類型的應用程式。 此平臺工具組提供與適用于 Windows 7 的 WDK (WDK 7.1) 中使用的組建選項的相容性。 如果您要移轉或轉換使用 WDK 7 建置的專案,則可以使用此設定。 |
Visual Studio 2012 (v110) | 用於任何類型的 Windows 應用程式, (預設) 。 |
注意 如果您從 Visual Studio 中其中一個可用的 Windows 驅動程式範本建立驅動程式,則會為您設定 PlatformToolset 屬性。 您也可以使用 Visual Studio 中的驅動程式專案屬性頁來選取 PlatformToolset 。 在 Visual Studio 中設定平臺工具組
- 開啟驅動程式專案的屬性頁。 選取並按住 (或以滑鼠右鍵按一下) 方案總管中的驅動程式專案,然後選取 [屬性]。
- 在驅動程式專案的屬性頁面中,選取 [ 組態屬性 ],然後選取 [ 一般]。
- 從下拉式清單中選取專案的 [平臺工具組 ] 屬性。
範例 - 在 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、StaticLibrary和 Utility。
WDK 為這個屬性引進了名為 Driver 的新值,以建置核心模式驅動程式。 如果您將此屬性設定為 Driver,MSBuild 將會產生.sys作為其副檔名的驅動程式檔案。 在此範例中, PlatformToolset 屬性會設定為 WindowsKernelModeDriver8.1 ,以建置核心模式驅動程式。 WindowsKernelModeDriver8.1 是唯一需要 DriverConfigurationType的 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 的 INCLUDE 或 LIBRARY 路徑等系統資訊,以及使用 Unicode 或 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
注意 當 UseEnv 未設定為 TRUE時,PATH、LIB、INCLUDE、LIBPATH 將會從平臺工具組中的對應屬性值設定。 當 UseEnv 設定為 TRUE時,如舊建置系統中所示,將會改用 PATH、INCLUDE、LIB 和 LIBPATH 環境變數中的值。
WDK 會安裝啟用驅動程式特定平臺工具組的檔案
下表摘要說明 WDK 安裝檔案的位置,以啟用驅動程式開發的平臺工具組。
路徑變數 | 描述 |
---|---|
$ (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。< 平臺 >。WindowsKernelModeDriver8.1.props 和 Microsoft.Cpp。< 平臺 >。WindowsUserModeDriver8.1.props,可匯入數個 WDK 特定屬性檔案。 |
$ (VCTargetsPath) \Platforms$ (Platform) \PlatformToolsets$ (PlatformToolset) < /p> |
針對 WDK: $ (PlatformToolset) 必須設定為WindowsKernelModeDriver8.1,才能建置核心模式驅動程式、設定為WindowsUserModeDriver8.1以建置使用者模式驅動程式,並將 設定為WindowsApplicationForDrivers8.1,以便與 Windows 7 WDK (WDK 7) 中使用的組建選項相容。 PlatformToolset 目錄 例如,C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\v120\Platforms\Win32\PlatformToolsets\WindowsKernelModeDriver8.1。 PlatformToolsets 目錄可讓您稍後在自己的子資料夾中新增其他類型的檔案。 |
Microsoft.Cpp.$ (Platform) .$ (PlatformToolset) .props |
平臺工具組屬性檔案 匯入屬性檔案以建置驅動程式。 也會匯入 v120 props 檔案。 |
Microsoft.Cpp.$ (Platform) .$ (PlatformToolset) .targets |
平臺工具組目標檔案 匯入目標檔案以建置驅動程式。 這些檔案包含 < 使用 UsingTask > 標籤來提取 WDK 工作。 這項功能也會匯入 v120 目標。 |
$ (WDKContentRoot) \build.props |
所有驅動程式特定的 props 檔案。 這些檔案包含建置驅動程式的預設設定。 |
$ (WDKContentRoot) \build*.targets |
所有驅動程式特定的目標檔案。 此檔案會識別要建置驅動程式的目標。 |