Windows Driver Kit (WDK) – bekannte Probleme

Dieses Thema beschreibt bekannte Probleme im Zusammenhang mit dem WDK.

WDK für Windows 11, Version 24H2

Neustart nach der Bereitstellung

Nach der Bereitstellung kann der Zielcomputer nicht neu gestartet werden.

ARM64 WDK-Treiber-SxS-Support

Wenn sowohl das Windows 11, Version 24H2-Kit als auch das Windows 11, Version 22H2-Kit auf einem ARM64-Computer installiert sind, schlägt beim Erstellen eines KMDF-Treibers für ARM64 mit TargetPlatformVersion auf Windows 11, Version 22H2 mit WdfDriverEntry.lib(stub.obj) : error LNK2001: unresolved external symbol fehl.

WDK-Erweiterung kann nicht installiert werden

Wenn Sie Visual Studio Version 17.11.0 oder höher verwenden, deaktivieren Sie das Kontrollkästchen für die Installationserweiterung in der WDK-Installation.

WDK für Windows 11, Version 22H2

Dienst-Fehler beim Starten

Wenn Sie das ursprüngliche WDK für Windows 11, Version 22H2 zwischen Mai und August 2022 (Version 10.0.22621.1) installiert haben, sehen Sie möglicherweise die folgende Fehlermeldung, 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 korrekt geladen.

Dieses Problem ist in der WDK-Version 10.0.22621.382 behoben. Sie können das WDK deinstallieren und dann das neueste WDK neu installieren, indem Sie die Anweisungen in Windows Driver Kit herunterladen befolgen.

Debugger in Visual Studio funktioniert nicht

Es ist nicht möglich, Treiber innerhalb der Visual Studio-Oberfläche zu debuggen, wenn Sie Visual Studio 2022 Version 17.2.0 und 17.3 mit dem Windows 11, Version 22H2 WDK (10.0.22621.382) verwenden. Um das Problem zu umgehen, führen Sie eine der folgenden Maßnahmen durch: Aktualisieren Sie Visual Studio auf 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.

WDF Redistributable Co-Installer funktionieren nicht

Ab dieser Version werden WDF Redistributable Co-Installer nicht mehr unterstützt. Konkret schlägt msbuild auf einem Computer, auf dem sowohl das Windows 11, Version 22H2 WDK als auch ein älteres WDK installiert ist, bei der Erstellung eines WDF 1.11-Treibers fehl, weil es den WDF Co-Installer nicht finden kann.

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

WDK für Windows 10, Version 2004

Problem in den Funktionen ExAllocatePoolZero, ExAllocatePoolQuotaZero und ExAllocatePoolPriorityZero FIXED

Im Mai 2020 entdeckte OSR, dass der neue Down-Level Support für das automatische Nullsetzen von Pool-Zuweisungen ein Problem hatte, das dazu führen konnte, dass eine Zuweisung auf Systemen, die Windows 10, Version 1909, ausführen, nicht null-initialisiert wurde. Dieses Problem 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, um die Visual Studio Build-Tools 16.7 einzubinden. Microsoft empfiehlt allen Entwickler*innen von Treibern, das ursprüngliche SDK und WDK (Version 2004) zu deinstallieren und das aktualisierte SDK und WDK oder EWDK zu installieren.

Um sicherzustellen, dass eine vollständige Sicherheitslösung vorhanden ist, wurde im November ein Betriebssystem-Fix für Windows 10, Version 1909, veröffentlicht, sodass das Betriebssystem geschützt ist, wenn ein Treiber mit dem Sicherheitsproblem erstellt wird.

Neben dem Download des aktualisierten WDK/EWDK empfiehlt Microsoft allen Treibern, alle Kernel-Zuweisungen auf die neuen Pool Zeroing DDIs umzustellen, die standardmäßig einen auf Null gesetzten Speicher zurückgeben. Dies erhöht die Sicherheit und Zuverlässigkeit der Treiber. Um diese Umstellung zu erleichtern, hat Microsoft eine Regel zur statischen Treiberüberprüfung erstellt, die in der Vorschau der Windows 10 WDK-Versionen 20236 und höher verfügbar ist. Die Regel identifiziert alle Instanzen im Quellcode eines Treibers, in denen die alten Pool-Zuordnungs-DDIs verwendet werden, und empfiehlt, diese durch die neuen, sichereren DDIs zu ersetzen. Die Regel ist auf WDM-, WDF- und NDIS-basierte Treiber anwendbar.

Die Installation des WDK aktiviert nicht mehr die Behebung von Spectre-Problemen für alle C++ Projekte, wie in WDK 1903 beschrieben

Während die WDK-Installation die Spectre-Behebung 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".

Bei der Auswahl von [Windows SDK-Version] auf 10.0 (neueste installierte Version) mit WDK 10.0.19041.0 tritt der Fehler "Ein WDK, das der Zielversion '10.0.19041.0' entspricht, wurde nicht gefunden" auf, auch wenn die SDK-Version installiert ist.

Abhilfe: Legen Sie auf der Eigenschaftsseite für das Treiberprojekt (Konfigurationseigenschaften >Allgemein) die Windows SDK-Version auf $(LatestTargetPlatformVersion) fest. Wenn diese Option nicht verfügbar ist, wählen Sie die Option Von übergeordnetem oder Projektstandard erben.

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

Das Ausführen von Static Driver Verifier aus dem EWDK erfordert .NET Framework 4.7.2. Abhängig von der Version von Windows auf Ihrem System ist .NET möglicherweise installiert, muss aber aktiviert werden oder ist nicht installiert. Weitere Informationen darüber, welche Version von .NET installiert ist oder über den Status der .NET-Installation finden Sie unter .NET-Framework-Versionen und Abhängigkeiten.

DVL-Erstellung schlägt mit System.IO.FileNotFoundException fehl

Wenn Sie versuchen, eine Log-Datei zur Treiberüberprüfung (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 Kommandozeile als auch in der GUI-Umgebung auftreten. Dieses Problem wird in einer zukünftigen Version des WDK behoben und ist in der Windows Insider Vorschau WDK zu sehen. Leider gibt es für die aktuelle Version keine Abhilfe.

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 das Ausführen des EWDK auf einem Computer ohne installiertes VS fehl. Installieren Sie Visual Studio auf dem Computer, um dieses Problem zu beheben.

Driver Verifier wird nicht aktiviert/deaktiviert, wenn Sie den WDK Test Explorer verwenden

Driver Verifier wird nicht aktiviert/deaktiviert, wenn Device Fundamental Tests mit dem WDK Test Explorer ausgeführt werden.

Abhilfe: Aktivieren/deaktivieren Sie auf dem Client Computer die Treiberüberprüfung manuell gemäß dieser Anleitung.

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

Wenn beide Versionen der Kits auf demselben PC installiert sind, funktioniert die Funktion "Treiber bereitstellen" bei der älteren Version nicht.

Abhilfe: Verwenden Sie 1803 auf einem separaten Computer, wenn die Funktion "Treiber bereitstellen" benötigt wird.

Die Tests des Windows Device Testing Framework (WDTF) werden jetzt nur noch auf Systemen ausgeführt, deren Versionen mit denen des WDK für Windows 10 übereinstimmen.

Im WDK für 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 Betriebssystemen mit niedrigerem Niveau ausgeführt wird. Die Änderung wird mit dem WDK für Windows 10, Version 2004, fortgesetzt.

Alternative für Down-Level-Tests

Die WDTF-Tests im WDK für Windows 10, Version 1803 können auch auf früheren Windows-Versionen ausgeführt werden.

APIValidator

Auf einem Computer mit x86-Architektur kann APIValidator nicht gegen x64 Binärdateien ausgeführt werden. Wenn Sie x64-Treiber auf einem x86-Computer erstellen, sollten Sie APIValidator deaktivieren.

Problemumgehung:

  1. Rufen Sie die Seite Eigenschaften der Treiberlösung auf.

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

Wenn Sie das WDK auf Windows 7 Systemen ausführen, benötigen Sie KB 3033929

Sie müssen Microsoft Security Advisory 3033929 (KB3033929) installieren, bevor Sie das WDK auf Systemen mit Windows 7 ausführen. KB3033929 kann aus dem Microsoft Download Center heruntergeladen werden.

Die Installation des WDK erzeugt eine Fehlermeldung von Visual Studio, dass die Add-In-Komponente bereits installiert ist

Diese Fehlermeldung tritt auf, wenn das WDK deinstalliert wurde, aber die WDK-Treibererweiterung für Visual Studio nicht deinstalliert wurde.

Lösung: Gehen Sie in Visual Studio zum Dropdown-Menü Erweiterung, wählen Sie Erweiterungen verwalten, wählen Sie das Windows Driver Kit, und klicken Sie dann auf Deinstallieren.

Häufig gestellte Fragen

Wie kann ich feststellen, ob die WDK- oder EWDK-Versionen, die ich habe, den Fix für die Nullsetzung von Pool-Zuweisungen enthalten?

Gehen Sie in Systemeinstellungen zu Programme hinzufügen oder entfernen, suchen Sie nach Windows Driver Kit, und notieren Sie die Version. Das ursprüngliche WDK für Windows 10, Version 2004, hat die Version 10.0.19041.1, die aktualisierte WDK-Version lautet 10.0.19041.685. Für das EWDK sehen Sie sich nach dem Start der EWDK-Umgebung den Titel des Befehlsfensters an. Die aktualisierte Version enthält vb_release_svc_prod1.19041.685. Wenn Sie sich außerdem die Umgebungsvariablen ansehen, sollte die Variable BuildLab vb_release_svc_prod1.19041.685 anzeigen.

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

Nein, aber das aktualisierte Windows Software Development Kit (SDK) enthält eine Korrektur für onecore.lib, die nützlich sein kann. Außerdem ist es allgemein eine gute Idee, das SDK und das WDK aufeinander abzustimmen.

Wenn ich bereits das WDK für Windows 10, Version 2004 installiert habe, muss ich es dann deinstallieren, bevor ich die aktualisierte Version installiere?

Es wird dringend empfohlen, das ursprüngliche SDK und WDK von 2004 zu deinstallieren und das SDK und WDK für die Sicherheitsaktualisierung zu installieren. Wenn das aktualisierte WDK über das ursprüngliche WDK installiert wird, überschreibt die aktualisierte Version das Original. Hinweis: In diesem Szenario "Programme hinzufügen oder entfernen" werden beide Versionen aufgelistet.