共用方式為


Windows 驅動程式套件 (WDK) 已知問題

本主題詳細說明 WDK 的已知問題。

適用於 Windows 11 版本 24H2 的 WDK

布建之後重新啟動

布建和部署之後,目標計算機無法在部署步驟之後重新啟動。

ARM64 WDK 驅動程式 SxS 支援

當 Windows 11 版本 24H2 套件和 Windows 11 版本 22H2 套件都安裝在 ARM64 計算機上時,建置適用於 ARM64 且 TargetPlatformVersion 設定為 Windows 11 版本 22H2 的 KMDF 驅動程式會失敗,WdfDriverEntry.lib(stub.obj) : error LNK2001: unresolved external symbol

WDK 擴充功能無法安裝

如果您使用 Visual Studio 17.11.0 版或更新版本,請取消核取 WDK 安裝中的 [安裝延伸模組] 複選框。

適用於 Windows 11 版本 22H2 的 WDK

啟動時的服務錯誤

如果您在 2022 年 5 月至 8 月之間安裝原始 Windows 11 版本 22H2 WDK(版本 10.0.22621.1),當您使用 WDK 啟動 Visual Studio 時,可能會看到下列錯誤訊息。

套件 Microsoft.Windows.Tools.WinIDE.Debugger.DebuggerPackage, DebuggerPackage, Version=10.0.0.0, Culture=neutral, PublicKeyToken=null 未正確載入。

此問題已在 WDK 10.0.22621.382 版中修正。 您可以卸載 WDK,然後使用下載 Windows 驅動程式套件中的指示重新安裝最新的 WDK。

Visual Studio 中的調試程式無法運作

使用 Visual Studio 2022 17.2.0 版和 17.3 版搭配 Windows 11 版本 22H2 WDK(10.0.22621.382)時,無法在 Visual Studio 介面內偵錯驅動程式。 若要解決此問題,請執行下列其中一項:將Visual Studio更新為17.4.1或更新版本、使用WinDbg進行偵錯,或使用17.2.0之前的Visual Studio版本。 下列錯誤訊息與此問題相關:

必須在UI上呼叫QueryBuildManagerBusyEx。

WDF 可轉散發共同安裝程式無法運作

從此版本開始,不再支援 WDF 可轉散發共同安裝程式。 具體而言,在同時具有 Windows 11 版本 22H2 WDK 和舊版 WDK 的電腦上,建置 WDF 1.11 驅動程式時,msbuild 會失敗,因為它找不到 WDF 硬幣驅動器。

若要修正此問題,請在安裝 Windows 11 版本 22H2 WDK 之前,先備份資料夾 \Program files (x86)\windows kit\10\redist\wdf 並還原。 或者,如果您已安裝 Windows 11 版本 22H2 WDK,請在個別電腦上的 WDK 8 可轉散發元件上安裝 MSI 檔案,並將資料夾複製到redist上述資料夾。 如需詳細資訊,請參閱 可轉散發架構元件

適用於 Windows 10 版本 2004 的 WDK

ExAllocatePoolZero、ExAllocatePoolQuotaZero 和 ExAllocatePoolPriorityZero 函式 FIXED 的問題

在 2020 年 5 月, OSR 發現集區配置自動零的新下層支援有一個問題,可能會導致在執行 Windows 10 版本 1909 的系統上,配置不會獲得零初始化。 現在已修正 Windows 10 版本 2004 的 WDK 與 Windows 10 版本 2004 的企業 WDK (EWDK)於 2004 年 12 月 16 日的安全性重新整理。 Microsoft利用安全性重新整理和更新 EWDK,以包含 Visual Studio 建置工具 16.7。 Microsoft建議所有驅動程式開發人員卸載原始 SDK 和 WDK(版本 2004),並安裝重新整理 SDK 和 WDK 或 EWDK。

為了確保已備妥完整的安全性解決方案,11 月 Windows 10 版本 1909 發行了操作系統修正程式,因此如果有驅動程式以安全性問題建立,OS 就會受到保護。

除了下載更新的 WDK/EWDK 之外,Microsoft建議所有驅動程式切換所有核心配置,以使用預設傳回零記憶體的新集區零 DIS。 這會增加驅動程式的安全性和可靠性。 為了協助進行這項轉換,Microsoft已建立靜態驅動程序驗證器規則,可在預覽 Windows 10 WDK 版本 20236 和更新版本中取得。 此規則會識別驅動程式原始碼中正在使用舊集區配置 DDI 的所有實例,並建議將它們取代為新的、更安全的對等 DDI。 此規則適用於 WDM、WDF 和 NDIS 型驅動程式。

安裝 WDK 不再針對 WDK 1903 中所見的所有C++專案啟用 Spectre 風險降低功能

雖然 WDK 安裝預設會為所有驅動程式啟用 Spectre 風險降低功能,但它不會再針對所有C++專案啟用它們。

找不到對應至目標 『10.0.19041.0』 的 WDK 錯誤。

選取 [Windows SDK 版本] 至 '10.0 (最新安裝的版本)' 且 WDK 10.0.19041.0 時,即使已安裝 SDK 版本,仍會導致 「找不到目標版本 '10.0.19041.0' 的 WDK」錯誤。

因應措施: 在驅動程式專案的屬性頁面中(組態屬性 >一般)將 Windows SDK 版本設定為 $(LatestTargetPlatformVersion)。 如果此選項無法選取,請選取繼承自父系或項目預設值的選項

在伺服器上執行的EWDK和SDV具有 .NET 需求

從EWDK執行靜態驅動程序驗證器需要 .Net Framework 4.7.2。 視系統上的 Windows 版本而定,可能會安裝 .NET、可能已安裝但必須啟用或未安裝。 如需安裝哪個 .NET 版本或 .NET 安裝狀態的詳細資訊,請檢閱 .NET Framework 版本和相依性

DVL 產生失敗,並出現 System.IO.FileNotFoundException

試著建立驅動程式驗證記錄檔 (DVL) 時,會顯示下列錯誤:

Unhandled Exception: System.IO.FileNotFoundException: 
Could not load file or assembly 
'System.Runtime, Version=4.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' 
or one of its dependencies. 
The system cannot find the file specified.

這可以在命令行和 GUI 環境中發生。 此問題會在未來的 WDK 版本中解決,而且可在 Windows Insider Preview WDK 中看到。 不幸的是,目前版本沒有因應措施。

如果未安裝 VS,SDV 會在 EWDK 中失敗

SDV 在 Visual Studio 中相依於VCRUNTIME140D.dll。 因此,在沒有安裝 VS 的電腦上執行 EWDK 將會失敗。 在電腦上安裝 Visual Studio 以解決此問題。

使用 WDK 測試總管時,驅動程式驗證器不會啟用/停用

使用 WDK 測試總管執行裝置基礎測試時,驅動程式驗證器不會啟用/停用。

因應措施: 在用戶端計算機上,根據這些指示手動啟用/停用驅動程序驗證器。

Windows 10 版本 2004 和 WDK Windows 10 版本 1903 或版本 1803 的 WDK 並存安裝

在相同電腦上安裝這兩個版本的套件時,「部署驅動程式」功能不適用於舊版。

因應措施: 如果需要部署驅動程式功能,在個別計算機上使用 1803。

Windows 裝置測試架構 (WDTF) 測試現在只會在與 WDK 相符的 Windows 10 版本系統上執行

在 Windows 10 版本 1809 的 WDK 中,已對 WDTF 進行變更,以支援此版本的 Windows 10 版本 1809。 其效果是 WDTF 將不再在下層 OS 上執行。 此變更會繼續進行 Windows 10 版本 2004 的 WDK。

下層測試的替代方案

適用於 Windows 10 版本 1803 的 WDK 中的 WDTF 測試可以在舊版 Windows 上執行。

APIValidator

在 x86 拱形電腦 APIValidator 上,無法對 x64 二進位檔執行。 如果在 x86 機器 APIValidator 上建置 x64 驅動程式,應該關閉。

因應措施

  1. 移至驅動程式解決方案的屬性頁面。

  2. 選取 [APIValidator],然後選取 [一般],然後將 [執行 ApiValidator] 從 [是] 變更[否]。

在 Windows 7 系統上執行的 WDK 需要 KB 3033929

在執行 Windows 7 的系統上安裝 WDK 之前,您必須先安裝 Microsoft Security Advisory 3033929 (KB3033929)。 您可以從Microsoft下載中心下載KB3033929。

安裝 WDK 會產生 Visual Studio 中已安裝載入巨集元件的錯誤

如果 WDK 已卸載,但未卸載 Visual Studio 的 WDK 驅動程式擴充功能,就可以看到此錯誤訊息。

解決方案:在 Visual Studio 中,移至 [擴充功能] 下拉功能表,選擇 [管理擴充功能],選取 [Windows 驅動程式套件],然後按兩下 [卸載]。

常見問題集

如何? 判斷我是否包含集區配置零的修正 WDK 或 EWDK 版本?

[系統設定] 中,移至 [ 新增或移除程式],搜尋 Windows Driver Kit 並記下版本。 Windows 10 版本 2004 的原始 WDK 版本為 10.0.19041.1,重新整理的 WDK 版本是 10.0.19041.685 若為 EWDK,一旦啟動 EWDK 環境,請查看命令視窗的標題。 重新整理的版本將包含 vb_release_svc_prod1.19041.685。 此外,查看環境變數時, BuildLab 變數應該會顯示 vb_release_svc_prod1.19041.685

Windows 軟體開發工具包 (SDK) 也已重新整理,這也需要嗎?

否,不過,重新整理的 Windows 軟體開發工具包 (SDK) 包含 onecore.lib 的修正程式,可能很好。 此外,最好讓 SDK 和 WDK 保持一致。

如果我已安裝適用於 Windows 10 版本 2004 的 WDK,是否需要在安裝重新整理的版本之前卸載它?

強烈建議您卸載原始的 2004 SDK 和 WDK,以及安裝安全性重新整理 SDK 和 WDK。 也就是說,如果重新整理的 WDK 安裝在原始 WDK 之上,重新整理的版本將會覆寫原始版本。 注意:在此案例中,會列出這兩個版本「新增或移除程式」。