共用方式為


使用 Visual Studio 或 MSBuild 建置驅動程式

本主題提供如何使用 Visual Studio 開發環境或從命令行使用 Visual Studio 命令提示字元視窗和 Microsoft Build Engine (MSBuild) 建置驅動程式的指示。

若要開發適用於 Windows 的驅動程式,您必須在 Visual Studio 中安裝 SDK 和 WDK,並設定驅動程式設定。 確定電腦上的 SDK 和 WDK 版本相符。

使用 Visual Studio 建置驅動程式

您建置驅動程式的方式與在 Visual Studio 中建置任何專案或方案的方式相同。 當您使用驅動程式範本建立新的驅動程式專案時,此範本會定義預設(使用中)專案組態和預設(使用中)方案建置組態。

如需管理及編輯組建組態的資訊,請參閱 在Visual Studio中建置。

KMDF 驅動程式設定

若要在 VS 2022 中設定驅動程式設定,請以滑鼠右鍵按下驅動程式專案、選取屬性,然後流覽至 [屬性] ->[組態屬性] ->[驅動程式] 設定。

Visual Studio KMDF 驅動程式 設定。

目標OS版本

目標 OS版本 是指要開發驅動程式的Windows版本。 將目標 OS 版本設定為驅動程式支援的最低版本。 例如,適用於 Windows 10 的驅動程式應該支援 Windows 10 和所有更新版本。

請遵循這些主題中的指引,以確保您的 驅動程式套件 已正確撰寫,以支援多個版本的 Windows。

目標平台

Windows 目標平臺、通用驅動程式、桌面驅動程式和 Windows 驅動程式有 3 個分類。

  1. 通用驅動程式 必須:

  2. 桌面驅動程式 必須:

    符合桌面驅動程式準則的驅動程式會經過 Windows 標誌認證,並可新增至 Windows Update 計劃。

  3. Windows 驅動程序 必須:

    • 符合所有桌面驅動程式需求。
    • 完全符合 驅動程式套件隔離 需求。
    • 通過 InfVerif /w
    • Windows 驅動程式是限制性最高的目標平台選擇,且符合所有可靠性和可服務性需求。

下表摘要說明驅動程序分類。

功能 通用驅動程式 桌面驅動程式 Windows 驅動程式
Infverif 參數 InfVerif /u InfVerif /h InfVerif /w
目前的 WHCP 需求 No .是 No
支援 Windows OS 的所有變體 No Yes
X64/ARM64 支援 Yes .是 Yes
需要APIVALIDATOR合規性 No Yes
桌面 OS 支援 (目標 OS 版本) Yes .是 Yes
GitHub 驅動程式範例支援 Yes .是 No

驅動程式組態

建置驅動程式時,請確定使用WDK或EWDK在Visual Studio中正確設定平台架構和NT_TARGET_VERSION。 開發的預設解決方案組建組態為 DebugWin64

  1. 在 [方案總管] 中選取並按住方案,或以滑鼠右鍵按兩下方案,然後選取 [組態管理員]。
  2. 從 Configuration Manager 中,選取 [作用中解決方案組態] (例如[偵錯] 或 [發行] 和 [作用中] 解決方案平臺 (例如,Win64),以對應至您感興趣的組建類型。
  3. 選取並按住專案,或以滑鼠右鍵按兩下專案,然後選取 [ 屬性]。 流覽至 [驅動程式] 設定 ->General,然後設定 [目標操作系統版本] 和 [目標平臺]。
  4. 設定驅動程式或驅動程式套件的項目屬性。 您可以設定部署、驅動程式簽署或其他工作的屬性。 如需詳細資訊,請參閱 設定驅動程式和驅動程式套件的項目屬性。

建置驅動程式

  1. 在 Visual Studio 中開啟驅動程式專案或方案。
  2. 從 [ 建置] 功能表中,選取 [建置方案 ] [Ctrl+Shift+B]。
  3. 在建置輸出視窗中檢視任何編譯時間錯誤。

使用命令列建置驅動程式 (MSBuild)

您可以使用 Visual Studio 命令提示字元視窗和 Microsoft Build Engine (MSBuild) 從命令行建置驅動程式

使用 Visual Studio 命令提示字元視窗建置驅動程式

  1. 開啟 VS2022 的開發人員命令提示字元視窗。

    在此視窗中,您可以使用 MSBuild.exe 來建置任何 Visual Studio 專案,方法是指定專案 (.vcxproj) 或方案 (.sln) 檔案。

  2. 流覽至專案目錄,然後輸入 目標的 MSBuild 命令。

    例如,若要使用預設平臺和組態來執行名為 MyDriver.vcxproj 之 Visual Studio 驅動程式專案的全新組建,請流覽至專案目錄,然後輸入下列 MSBuild 命令:

    msbuild /t:clean /t:build .\MyDriver.vcxproj
    

    若要指定特定組態和平臺,請使用:

    msbuild /t:clean /t:build ProjectFile /p:Configuration=<Debug|Release> /p:Platform=architecture /p:TargetPlatformVersion=a.b.c.d /p:TargetVersion=OS    
    

    下列命令會建置「偵錯」組態、「Win32」平臺和 Windows 10 的驅動程式。

    msbuild /t:clean /t:build .\MyDriver.vcxproj /p:Configuration="Debug" /p:Platform=Win32 /p:TargetVersion="Windows10" /p:TargetPlatformVersion="10.0.10010.0"
    

    TargetPlatformVersion 設定是選擇性的,並指定要建置的套件版本。 預設值為最新的套件版本。

設定驅動程式和驅動程式套件的項目屬性

使用 屬性頁 來設定及設定驅動程式和驅動程式套件的選項。 您可以選擇設定驅動程式,以便在建置方案時自動簽署,或自動部署至遠端測試計算機。

您可以設定個別驅動程式或整個驅動程式套件的屬性。 下一節顯示您可以特別針對驅動程式和驅動程式套件設定的一些可用屬性。

驅動程式項目屬性

驅動程式套件屬性

WDK 命令行工具專案整合

WDK 提供許多命令行工具,例如 StampinfWPP 預處理器 (WPP 追蹤),通常包含在建置程式中。 這些工具不會與Visual Studio一起散發。 若要結合這些工具與 Visual Studio 建置環境,它們會包裝為 MSBuild 的 WDK 工作。 如果您使用其中一個驅動程式範本或已轉換的現有驅動程式,則專案可能已經存在這些屬性頁。 如果沒有,當您將相關的文件類型新增至專案或方案時,會自動將屬性頁新增至專案或方案(例如訊息編譯程式的 .mc 或 .man 檔案)。 如需詳細資訊,請參閱 WDK 和 Visual Studio 建置環境

建置驅動程式的疑難解答提示

若要協助針對建置問題進行疑難解答,您可以在Visual Studio中增加組建輸出的詳細資訊:

  1. 選取 [工具 -> 選項]。
  2. 選取 [ 專案和方案] 資料夾,然後選取 [ 建置並執行]。
  3. 變更 MSBuild 專案建置輸出詳細資訊和 MSBuild 專案建置記錄檔詳細資訊的選項。 根據預設,這些設定為 [最小]。

更新 Windows 8 驅動程式

您可以轉換您使用 WDK 8 或 Windows 驅動程式套件 (WDK) 8.1 建立的項目和解決方案,以搭配 Windows Driver Kit (WDK) 10 和 Visual Studio 使用。 開啟專案或方案之前,請先執行 ProjectUpgradeTool。 ProjectUpgradeTool 會轉換專案和方案,以便使用WDK 10 來建置這些專案和方案。

從 Windows 驅動程式套件 (WDK) 8 開始,MSBuild 取代了 Windows 組建公用程式 (Build.exe)。 WDK 會使用您用來建置 Visual Studio 專案的相同編譯程式和建置工具。 使用舊版 WDK 建置的驅動程式項目必須轉換成在 Visual Studio 環境中運作。 您可以從命令行執行轉換公用程式,也可以從現有的來源建立新的Visual Studio專案,以轉換現有的驅動程式。 如需詳細資訊,請參閱 從現有的原始程序檔 和 WDK 和 Visual Studio 建置環境建立驅動程式。