Schulung
Modul
Troubleshoot device driver failures - Training
This module focuses on the role of device drivers and troubleshooting problems that pertain to them.
Dieser Browser wird nicht mehr unterstützt.
Führen Sie ein Upgrade auf Microsoft Edge aus, um die neuesten Funktionen, Sicherheitsupdates und technischen Support zu nutzen.
Dieses Thema beschreibt bekannte Probleme im Zusammenhang mit dem WDK.
Nach der Bereitstellung kann der Zielcomputer nicht neu gestartet werden.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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 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 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.
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.
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.
Die WDTF-Tests im WDK für Windows 10, Version 1803 können auch auf früheren Windows-Versionen ausgeführt werden.
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:
Rufen Sie die Seite Eigenschaften der Treiberlösung auf.
Wählen Sie APIValidator, dann Allgemein und ändern Sie ApiValidator ausführen von Ja auf Nein.
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.
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.
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.
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.
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.
Schulung
Modul
Troubleshoot device driver failures - Training
This module focuses on the role of device drivers and troubleshooting problems that pertain to them.
Dokumentation
Frühere WDK-Versionen und weitere Downloads - Windows drivers
Installieren Sie Versionen von Windows Driver Kit (WDK), Windows Debugger (WinDBG) und weiteren.
Installieren von Vorschauversionen des Windows Driver Kit (WDK) - Windows drivers
Installationsanweisungen für die neueste Pre-Release-Version des Windows Driver Kit (WDK).
Versionshinweise zum Windows Drivers Kit (WDK) - Windows drivers
Hebt die neuesten Features in neuen WDK-Versionen hervor.