共用方式為


使用 WDK 建立 Arm64 驅動程式

從WDK 10.0.26100.1版開始(2024 年 5 月 22 日發行),WDK 現在支援在 Arm64 計算機上開發、測試及部署驅動程式。 除了先前在 Arm64 硬體上支援的 x86 KMDF/UMDF2 驅動程式模擬之外,WDK 還可以在 Arm64 硬體上以原生方式安裝及執行。 此外,也支援從 Arm64 和 x64 主機對 Arm64 目標機器進行驅動程式的偵錯和部署。 在 Arm64 電腦上安裝 WDK 的程式會自動識別並安裝所有必要的相依性,包括建置工具、二進位檔和連結庫。

此頁面說明如何使用 WDK 建置 Arm64 驅動程式。

設定

  1. 下載 Visual Studio 2022。 您至少需要 17.0.0 版或更新版本。 請確定您已安裝下列元件:

    • MSVC v143 - VS 2022 C++ ARM64/ARM64EC Spectre 漏洞緩解程式庫(最新)
    • MSVC v143 - VS 2022 C++ x64/x86 Spectre漏洞緩解程式庫(最新)
    • C++ ATL 適用於具有 Spectre 緩解措施的最新 v143 建置工具 (ARM64/ARM64EC)
    • 最新 v143 組建工具的 C++ ATL,含 Spectre 漏洞緩解措施(適用於 x86 和 x64)
    • C++ MFC 適用於最新版本的 v143 建置工具,並搭載 Spectre 緩解措施(ARM64/ARM64EC)
    • 最新 v143 版本的 C++ MFC 建置工具,支援 Spectre 漏洞緩解措施(x86 和 x64)
    • Windows 驅動程式套件
  2. 安裝並重新啟動 Visual Studio。

  3. 下載 Windows SDK。 請確定您有 SDK 版本 26100 (Windows 11 版本 24H2) 或更新版本。

  4. 下載 WDK。 請確定您有 WDK 26100 版或更新版本。

使用 WDK 打造 Arm64 驅動程式

  1. 在 Visual Studio 中,開啟驅動程式解決方案。 您可以使用您自己的存放庫,或 Windows-driver-samples 存放庫。

  2. 選取 [解決方案平臺],然後選取 [組態管理員]。

    Visual Studio 工具列截圖,顯示解決方案平台下拉選單中的組態管理員選項。

  3. 活動解決方案平台底下,選取新增

    組態管理員對話框的截圖,新增選項在「主動解決方案平台」下拉選單中被高亮。

  4. [類型] 或 [選取新平臺],選取 [Arm64]。 從 Win32 複製設定。 選取 [確定 ] 和 [關閉]。

    選取 Arm64 為目標平台的新解決方案平台對話截圖。

  5. 選取 [Arm64 ] 作為目標平臺並重建。

已知問題

  • 整合

    • 安裝 Windows 11 版本 24H2 套件和 Windows 11 版本 22H2 套件時,建置已設定為 Windows 11 版本 22H2 的 KMDF 驅動程式 ARM64 TargetPlatformVersion ,版本 22H2 會因為無法解析的外部符號而失敗。
    • 無法在 Visual Studio 2022 17.2.0 版和 17.3 版中使用 Windows 11 版本 22H2 WDK 偵錯驅動程式。
  • 因應措施

    • 將 Visual Studio 更新為 17.4.1 版或更新版本,以解決偵錯問題。
    • 如果更新 Visual Studio 不是選項,請使用 WinDbg 進行偵錯。
    • 如果相容性問題持續發生,請考慮使用舊版的Visual Studio。

使用企業 Windows 驅動程式套件 (EWDK)

  • EWDK 概觀

    • EWDK 包含所有必要的相依性,而且可以用來建置驅動程式,而不需要 Visual Studio 安裝。
  • 使用 EWDK 建置

    • 請使用以下指令來建立驅動程式:

      Msbuild -p:Configuration=Release/Debug; Platform=ARM64
      

如需詳細資訊,請參閱 企業 WDK (EWDK)

故障排除

  • Visual Studio 中的組態

    • 在 Visual Studio 中,選取 Configuration Manager 中的 Arm64 平臺並從 Win32 複製設定,以設定 Arm64 的驅動程序解決方案。
  • 測試和偵錯

    • 在 Windows on Arm 裝置或 Windows 11 Arm64 虛擬機器上測試和偵錯驅動程式。

另請參閱