Bekannte Probleme mit dem Windows Driver Kit (WDK)

In diesem Thema werden bekannte Probleme im Zusammenhang mit dem WDK erläutert.

WDK für Windows 11, Version 22H2

Dienstfehler beim Start

Wenn Sie die ursprüngliche Windows 11 Version 22H2 WDK zwischen Mai und August 2022 (Version 10.0.22621.1) installiert haben, wird möglicherweise die folgende Fehlermeldung angezeigt, wenn Sie Visual Studio mit dem WDK starten.

Das Microsoft.Windows.Tools.WinIDE.Debugger.DebuggerPackage, DebuggerPackage, Version=10.0.0.0, Culture=neutral, PublicKeyToken=null Paket wurde nicht ordnungsgemäß geladen.

Dieses Problem wurde in WDK-Version 10.0.22621.382 behoben. Sie können das WDK deinstallieren und dann das neueste WDK neu installieren, indem Sie die Anweisungen unter Herunterladen des Windows Driver Kit verwenden.

Debugger in Visual Studio funktioniert nicht

Es ist nicht möglich, Treiber innerhalb der Visual Studio-Schnittstelle zu debuggen, wenn Visual Studio 2022 Version 17.2.0 und 17.3 mit dem Windows 11, Version 22H2 WDK (10.0.22621.382) verwendet wird. Führen Sie eine der folgenden Schritte aus, um das Problem zu umgehen: Aktualisieren Sie Visual Studio auf Version 17.4.1 oder höher, debuggen Sie mit WinDbg oder verwenden Sie eine Version von Visual Studio vor 17.2.0. Die folgende Fehlermeldung bezieht sich auf dieses Problem:

QueryBuildManagerBusyEx muss auf der Benutzeroberfläche aufgerufen werden.

Verteilbare WDF-Co-Installer funktionieren nicht

Ab diesem Release werden verteilbare WDF-Co-Installer nicht mehr unterstützt. Insbesondere schlägt msbuild bei der Erstellung eines WDF 1.11-Treibers auf einem Computer mit dem Windows 11, VERSION 22H2 WDK und einem älteren WDK, fehl, da der WDF-Coinstaller nicht gefunden werden kann.

Um dieses Problem zu beheben, sichern Sie den Ordner \Program files (x86)\windows kit\10\redist\wdf vor der Installation von Windows 11, Version 22H2 WDK, und stellen Sie ihn anschließend wieder her. Wenn Sie die Windows 11, Version 22H2 WDK, bereits installiert haben, installieren Sie alternativ die MSI-Datei unter WDK 8 redistributable components auf einem separaten Computer, und kopieren Sie den redist Ordner in den obigen Ordner. Weitere Informationen finden Sie unter Redistributable Framework Components.

WDK für Windows 10, Version 2004

Problem in den Funktionen ExAllocatePoolZero, ExAllocatePoolQuotaZero und ExAllocatePoolPriorityZero BEHOBEN

Im Mai 2020 entdeckte OSR, dass die neue Unterstützung für die automatische Nullierung von Poolzuordnungen ein Problem hatte, das dazu führen konnte, dass eine Zuordnung auf Systemen, die Windows 10 Version 1909 ausgeführt werden, nicht mit null initialisiert wird. Dies wurde nun mit einer Sicherheitsaktualisierung des WDK für Windows 10, Version 2004 und des Enterprise WDK (EWDK) für Windows 10, Version 2004 am 16. Dezember behoben. Microsoft nutzte die Sicherheitsaktualisierung und aktualisierte das EWDK auf die Visual Studio-Buildtools 16.7. Microsoft empfiehlt allen Treiberentwicklern, das ursprüngliche SDK und WDK (Version 2004) zu deinstallieren und das Aktualisierungs-SDK und WDK oder EWDK zu installieren.

Um sicherzustellen, dass eine vollständige Sicherheitslösung vorhanden war, wurde ein Betriebssystemfix für Windows 10, Version 1909, im November veröffentlicht. Wenn also ein Treiber mit dem Sicherheitsproblem erstellt wurde, wäre das Betriebssystem vor diesem geschützt.

Zusätzlich zum Herunterladen des aktualisierten WDK/EWDK empfiehlt Microsoft, dass alle Treiber alle Kernelzuordnungen so ändern, dass der neue Pool nulling DDIs verwendet, die standardmäßig nullen Arbeitsspeicher zurückgeben. Dies erhöht die Sicherheit und Zuverlässigkeit des Treibers. Um diesen Übergang zu unterstützen, hat Microsoft eine Statische Treiberüberprüfungsregel erstellt, die in der Vorschauversion Windows 10 WDK-Versionen 20236 und höher verfügbar ist. Die Regel identifiziert alle Instanzen im Quellcode eines Treibers, in denen die alten Poolzuordnungs-DDIs verwendet werden, und empfiehlt, sie durch den neuen, sichereren äquivalenten DDI zu ersetzen. Die Regel gilt für WDM-, WDF- und NDIS-basierte Treiber.

Die Installation von WDK ermöglicht keine Spectre-Entschärfungen mehr für alle C++-Projekte, wie in WDK 1903 dargestellt.

Während die WDK-Installation Spectre-Entschärfung standardmäßig für alle Treiber aktiviert, wird sie nicht mehr für alle C++-Projekte aktiviert.

Fehler "Ein WDK, das dem Ziel "10.0.19041.0" entspricht, wurde nicht gefunden.

Wenn Sie [Windows SDK-Version] auf "10.0 (neueste installierte Version)" mit WDK 10.0.19041.0 auswählen, wird der Fehler "Ein WDK, der der Zielversion '10.0.19041.0' entspricht, wurde nicht gefunden", auch wenn die SDK-Version installiert ist.

Problemumgehung: Legen Sie auf der Eigenschaftenseite für das Treiberprojekt (Konfigurationseigenschaften >Allgemein) die Windows SDK-Version auf $(LatestTargetPlatformVersion) fest. Wenn diese Option nicht zum Auswählen verfügbar ist, wählen Sie die Option Vom übergeordneten Oder Projektstandard erben aus.

EWDK und SDV, die auf dem Server ausgeführt werden, haben .NET-Anforderungen

Für das Ausführen der statischen Treiberüberprüfung über das EWDK ist .Net Framework 4.7.2 erforderlich. Abhängig von der Windows-Version auf Ihrem System ist .NET möglicherweise installiert, kann installiert sein, muss aber aktiviert werden oder nicht installiert werden. Weitere Informationen zur installierten .NET-Version oder zum Status der .NET-Installation finden Sie unter .NET Framework Versionen und Abhängigkeiten.

Fehler bei der DVL-Generierung mit System.IO.FileNotFoundException

Beim Versuch, ein Treiberüberprüfungsprotokoll (DVL) zu erstellen, wird der folgende Fehler angezeigt:

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.

Dies kann sowohl in der Befehlszeilen- als auch in der GUI-Umgebung auftreten. Dieses Problem wurde in einer zukünftigen Version des WDK behoben und kann im Windows Insider Preview WDK angezeigt werden. Leider gibt es keine Problemumgehung für die aktuelle Version.

SdV schlägt im EWDK fehl, wenn VS nicht installiert ist

SDV hat eine Abhängigkeit von VCRUNTIME140D.dll als Teil von Visual Studio. Daher schlägt die Ausführung des EWDK auf einem Computer ohne installierten VS fehl. Installieren Sie Visual Studio auf dem Computer, um dieses Problem zu umgehen.

Die Treiberüberprüfung wird bei Verwendung des WDK-Test-Explorers nicht aktiviert/deaktiviert.

Die Treiberüberprüfung wird nicht aktiviert/deaktiviert, wenn Gerätegrundlagentests mithilfe des WDK-Test-Explorer ausgeführt werden.

Problemumgehung: Aktivieren/deaktivieren Sie auf dem Clientcomputer die Treiberüberprüfung gemäß diesen Anweisungen manuell.

WDK Side-by-Side-Installationen von Windows 10, Version 2004 und WDK Windows 10, Version 1903 oder Version 1803

Wenn beide Versionen von Kits auf demselben PC installiert sind, funktioniert das Feature "Treiber bereitstellen" für eine ältere Version nicht.

Problemumgehung: Verwenden Sie 1803 auf einem separaten Computer, wenn das Feature "Treiber bereitstellen" erforderlich ist.

Windows Device Testing Framework (WDTF)-Tests werden jetzt nur auf Systemen mit übereinstimmenden Windows 10 Versionen als WDK ausgeführt.

In WDK for Windows 10, Version 1809 wurden Änderungen an WDTF vorgenommen, um diese Version von Windows 10, Version 1809 zu unterstützen. Dies hat zur Folge, dass WDTF nicht mehr auf heruntergefahrenen Betriebssystemen ausgeführt wird. Die Änderung wird mit WDK für Windows 10, Version 2004, fortgesetzt.

Alterativ für Downleveltests

Die WDTF-Tests in WDK für Windows 10 Version 1803 können unter früheren Windows-Versionen ausgeführt werden.

APIValidator

Auf einem x86-Arch-Computer kann APIValidator nicht für x64-Binärdateien ausgeführt werden. Beim Erstellen von x64-Treibern auf einem x86-Computer sollte APIValidator deaktiviert werden.

Problemumgehung:

  1. Wechseln Sie zur Eigenschaftenseite der Treiberlösung.

  2. Wählen Sie APIValidator, dann Allgemein aus, und ändern Sie ApiValidator ausführen von Ja in Nein.

WDK, das auf Windows 7-Systemen ausgeführt wird, erfordert KB-3033929

Sie müssen microsoft Security Advisory 3033929 (KB3033929) installieren, bevor Sie das WDK auf Systemen mit Windows 7 installieren. KB3033929 können im Microsoft Download Center heruntergeladen werden.

Beim Installieren des WDK wird von Visual Studio ein Fehler generiert, dass die Add-In-Komponente bereits installiert ist.

Diese Fehlermeldung kann angezeigt werden, wenn der WDK deinstalliert wurde, aber die WDK-Treibererweiterung für Visual Studio nicht deinstalliert wurde.

Auflösung: Navigieren Sie in Visual Studio zum Dropdownmenü Erweiterung , wählen Sie Erweiterungen verwalten aus, wählen Sie das Windows Driver Kit aus, und klicken Sie dann auf Deinstallieren.

Häufig gestellte Fragen

Gewusst wie sagen, ob die WDK- oder EWDK-Versionen, die ich habe, den Fix für das Nulling von Poolzuordnungen enthalten?

Wechseln Sie unter Systemeinstellungen zu Programme hinzufügen oder entfernen, suchen Sie nach Windows Driver Kit , und notieren Sie sich die Version. Das ursprüngliche WDK für Windows 10, Version 2004, hat eine Version von 10.0.19041.1. Die aktualisierte WDK-Version ist 10.0.19041.685 Für das EWDK sehen Sie sich den Titel des Befehlsfensters nach dem Start der EWDK-Umgebung an. Die aktualisierte Version enthält vb_release_svc_prod1.19041.685. Darüber hinaus sollte die BuildLab-Variable beim Betrachten der Umgebungsvariablen vb_release_svc_prod1.19041.685 anzeigen.

Das Windows Software Development Kit (SDK) wurde ebenfalls aktualisiert, ist dies auch erforderlich?

Nein, das aktualisierte Windows Software Development Kit (SDK) enthält jedoch eine Korrektur für onecore.lib, die möglicherweise gut zu haben ist. Außerdem empfiehlt es sich im Allgemeinen, das SDK und WDK aufeinander abzustimmen.

Wenn ich das WDK für Windows 10 Version 2004 bereits installiert habe, muss ich ihn vor der Installation der aktualisierten Version deinstallieren?

Es wird dringend empfohlen, wenn Sie über das ursprüngliche 2004 SDK und WDK verfügen, diese zu deinstallieren und das Sicherheitsaktualisierungs-SDK und WDK zu installieren. Wenn das aktualisierte WDK auf dem ursprünglichen WDK installiert ist, überschreibt die aktualisierte Version das Original. Hinweis: In diesem Szenario "Programme hinzufügen oder entfernen" werden beide Versionen aufgeführt.