Problèmes connus du Windows Driver Kit (WDK)
Cette rubrique détaille les problèmes connus concernant le WDK.
WDK pour Windows 11, version 24H2
Redémarrer après l’approvisionnement
Après l’approvisionnement et le déploiement, la machine cible ne parvient pas à redémarrer après les étapes de déploiement.
Support ARM64 WDK Driver SxS
Lorsque les kits Windows 11, version 24H2 et Windows 11, version 22H2 sont installés sur une machine ARM64, la construction d’un pilote KMDF pour ARM64 avec TargetPlatformVersion défini sur Windows 11, version 22H2 échoue avec WdfDriverEntry.lib(stub.obj) : error LNK2001: unresolved external symbol
.
Échec de l’installation de l’extension WDK
Si vous utilisez Visual Studio version 17.11.0 ou une version ultérieure, décochez la case d’installation de l’extension lors de l’installation du WDK.
WDK pour Windows 11, version 22H2
Erreur de service au démarrage
Si vous avez installé la version originale du WDK pour Windows 11, version 22H2 entre mai et août 2022 (version 10.0.22621.1), vous pouvez voir le message d’erreur suivant lorsque vous démarrez Visual Studio avec le WDK.
Le package Microsoft.Windows.Tools.WinIDE.Debugger.DebuggerPackage, DebuggerPackage, Version=10.0.0.0, Culture=neutral, PublicKeyToken=null
ne s’est pas chargé correctement.
Ce problème est résolu dans la version 10.0.22621.382 du WDK. Vous pouvez désinstaller le WDK puis réinstaller la dernière version du WDK en suivant les instructions dans Télécharger le Windows Driver Kit.
Le débogueur dans Visual Studio ne fonctionne pas
Il n’est pas possible de déboguer les pilotes dans l’interface de Visual Studio lorsque vous utilisez Visual Studio 2022 version 17.2.0 et 17.3 avec le WDK pour Windows 11, version 22H2 (10.0.22621.382). Pour contourner le problème, faites l’une des choses suivantes : mettez à jour Visual Studio vers la version 17.4.1 ou ultérieure, déboguez avec WinDbg, ou utilisez une version de Visual Studio antérieure à 17.2.0. Le message d’erreur suivant est lié à ce problème :
QueryBuildManagerBusyEx doit être appelé sur l’interface utilisateur.
Les co-installateurs redistribuables WDF ne fonctionnent pas
À partir de cette version, les co-installateurs redistribuables WDF ne sont plus pris en charge. Plus précisément, sur un ordinateur ayant à la fois le WDK pour Windows 11, version 22H2 et un ancien WDK, lors de la création d’un pilote WDF 1.11, msbuild échoue car il ne trouve pas le co-installateur WDF.
Pour résoudre ce problème, avant d’installer le WDK pour Windows 11, version 22H2, sauvegardez le dossier \Program files (x86)\windows kit\10\redist\wdf
et restaurez-le par la suite. Alternativement, si vous avez déjà installé le WDK pour Windows 11, version 22H2, installez le fichier MSI à composants redistribuables WDK 8 sur un ordinateur séparé et copiez le dossier redist
dans le dossier ci-dessus. Pour plus d’informations, veuillez consulter la section Composants du framework redistribuable.
WDK pour Windows 10, version 2004
Problème dans les fonctions ExAllocatePoolZero, ExAllocatePoolQuotaZero, et ExAllocatePoolPriorityZero RÉSOLU
En mai 2020, OSR a découvert que la nouvelle prise en charge pour l’initialisation automatique des allocations de pool avait un problème pouvant entraîner une allocation non initialisée à zéro sur les systèmes exécutant Windows 10, version 1909. Cela a maintenant été corrigé avec une mise à jour de sécurité du WDK pour Windows 10, version 2004 et de l’EWDK (Enterprise WDK) pour Windows 10, version 2004 le 16 décembre. Microsoft a profité de cette mise à jour de sécurité pour mettre à jour l’EWDK afin d’inclure les outils de build de Visual Studio 16.7. Microsoft recommande à tous les développeurs de pilotes de désinstaller le SDK et le WDK originaux (version 2004) et d’installer le SDK et WDK actualisés ou l’EWDK.
Pour garantir une solution de sécurité complète, une correction du système d’exploitation a été publiée pour Windows 10, version 1909 en novembre, de sorte que si un pilote créé avec le problème de sécurité est installé, le système d’exploitation soit protégé.
En plus de télécharger le WDK/EWDK mis à jour, Microsoft recommande à tous les développeurs de pilotes de changer toutes les allocations de noyau pour utiliser les nouvelles DDI de mise à zéro du pool qui retournent de la mémoire initialisée à zéro par défaut. Cela augmentera la sécurité et la fiabilité des pilotes. Pour faciliter cette transition, Microsoft a créé une règle Static Driver Verifier disponible dans les versions préliminaires du WDK pour Windows 10 versions 20236 et supérieures. La règle identifiera toutes les instances dans le code source d’un pilote où les anciennes DDI d’allocation de pool sont utilisées et recommandera de les remplacer par les nouvelles DDI plus sûres. La règle s’applique aux pilotes basés sur WDM, WDF et NDIS.
L’installation du WDK n’active plus les atténuations Spectre pour tous les projets C++ comme dans le WDK 1903
Bien que l’installation du WDK active par défaut l’atténuation Spectre pour tous les pilotes, elle ne l’active plus pour tous les projets C++.
Erreur « Un WDK correspondant à la cible "10.0.19041.0" n’a pas été trouvé. »
Sélectionner [Windows SDK Version] sur « 10.0 (dernière version installée) » avec le WDK 10.0.19041.0 provoque l’erreur « Un WDK correspondant à la version cible "10.0.19041.0" n’a pas été trouvé » même si la version SDK est installée.
Solution de contournement : Dans la page des propriétés du projet de pilote (Configuration Properties >General), définissez Windows SDK Version sur $(LatestTargetPlatformVersion). Si cette option n’est pas disponible, sélectionnez l’option hériter du parent ou de la valeur par défaut du projet.
EWDK et SDV exécutés sur serveur ont des exigences .NET
L’exécution de Static Driver Verifier à partir de l’EWDK nécessite le .Net Framework 4.7.2. Selon la version de Windows sur votre système, .NET peut être installé, installé mais nécessitant d’être activé, ou non installé. Pour plus d’informations sur la version de .NET installée ou l’état de l’installation de .NET, veuillez consulter la section Versions et dépendances du .NET Framework.
La génération de DVL échoue avec System.IO.FileNotFoundException
Lors de la tentative de création d’un Driver Verification Log (DVL), l’erreur suivante sera présentée :
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.
Cela peut se produire dans les environnements en ligne de commande et GUI. Ce problème est résolu dans une future version du WDK et peut être vu dans le WDK Windows Insider Preview. Malheureusement, aucune solution de contournement n’existe pour la version actuelle.
SDV échoue dans l’EWDK si Visual Studio n’est pas installé
SDV a une dépendance sur VCRUNTIME140D.dll en tant que partie de Visual Studio. En conséquence, l’exécution de l’EWDK sur une machine sans Visual Studio installé échouera. Installez Visual Studio sur la machine pour contourner ce problème.
Driver Verifier ne s’active/désactive pas lors de l’utilisation de l’explorateur de tests WDK
Driver Verifier ne s’active/désactive pas lorsque les tests Device Fundamental sont exécutés en utilisant l’explorateur de tests WDK.
Solution de contournement : Sur la machine cliente, activez/désactivez manuellement Driver Verifier selon ces instructions.
Installations WDK côte à côte de Windows 10, version 2004 et WDK Windows 10, version 1903 ou version 1803
Avec les deux versions des kits installées sur le même PC, la fonctionnalité « Deploy driver » ne fonctionnera pas pour les versions antérieures.
Solution de contournement : Utilisez la version 1803 sur une machine séparée si la fonctionnalité Deploy driver est nécessaire.
Les tests du Windows Device Testing Framework (WDTF) ne s’exécutent désormais que sur les systèmes avec des versions de Windows 10 correspondant à celles du WDK
Dans le WDK pour Windows 10, version 1809, des modifications ont été apportées au WDTF pour prendre en charge cette version de Windows 10, version 1809. L’effet de cela est que WDTF ne s’exécutera plus sur des systèmes d’exploitation antérieurs. Le changement se poursuit avec le WDK pour Windows 10, version 2004.
Alternative pour les tests sur des systèmes antérieurs
Les tests WDTF dans le WDK pour Windows 10, version 1803 peuvent être exécutés sur les versions précédentes de Windows.
APIValidator
Sur une machine à architecture x86, APIValidator ne peut pas s’exécuter sur des binaires x64. Si vous créez des pilotes x64 sur une machine x86, APIValidator doit être désactivé.
Solution de contournement :
Accédez à la page des propriétés de la solution de pilotes.
Sélectionnez APIValidator, puis General, et changez Run ApiValidator de Yes à No.
Le WDK exécuté sur les systèmes Windows 7 nécessite KB 3033929
Vous devez installer le Microsoft Security Advisory 3033929 (KB3033929) avant d’installer le WDK sur des systèmes exécutant Windows 7. KB3033929 peut être téléchargé depuis le Centre de téléchargement Microsoft.
L’installation du WDK génère une erreur de Visual Studio indiquant que le composant add-in est déjà installé
Ce message d’erreur peut apparaître si le WDK a été désinstallé mais que l’extension des pilotes WDK pour Visual Studio ne l’a pas été.
Solution : Dans Visual Studio, allez dans le menu déroulant Extension, choisissez Gérer les extensions, sélectionnez le Windows Driver Kit, puis cliquez sur Désinstaller.
Forum aux questions
Comment savoir si les versions WDK ou EWDK que je possède contiennent la correction pour la mise à zéro des allocations de pool ?
Dans Paramètres système, allez à Ajouter ou supprimer des programmes, recherchez Windows Driver Kit et notez la version. La version originale du WDK pour Windows 10, version 2004 a une version 10.0.19041.1, la version actualisée du WDK est 10.0.19041.685. Pour l’EWDK, une fois l’environnement EWDK lancé, regardez le titre de la fenêtre de commande. La version actualisée contiendra vb_release_svc_prod1.19041.685. De plus, en regardant les variables d’environnement, la variable BuildLab devrait afficher vb_release_svc_prod1.19041.685.
Le kit de développement logiciel (SDK) Windows a également été actualisé, est-il également nécessaire ?
Non, cependant, le kit de développement logiciel (SDK) Windows actualisé contient une correction pour onecore.lib qui peut être utile. De plus, il est généralement conseillé de maintenir le SDK et le WDK alignés.
Si j’ai déjà installé le WDK pour Windows 10, version 2004, dois-je le désinstaller avant d’installer la version actualisée ?
Il est fortement recommandé que si vous avez le SDK et le WDK originaux de 2004, vous les désinstalliez et installiez le SDK et WDK actualisés de sécurité. Cela dit, si la version actualisée du WDK est installée par-dessus la version originale, la version actualisée écrasera l’originale. Remarque : Dans ce scénario « Ajouter ou supprimer des programmes », les deux versions seront listées.