Problèmes connus du Kit de pilotes Windows (WDK)

Cette rubrique détaille les problèmes connus concernant le WDK.

WDK pour Windows 11, version 22H2

Erreur de service au démarrage

Si vous avez installé la Windows 11 d’origine, version 22H2 WDK entre mai et août 2022 (version 10.0.22621.1), le message d’erreur suivant peut s’afficher lorsque vous démarrez Visual Studio avec le WDK.

Le Microsoft.Windows.Tools.WinIDE.Debugger.DebuggerPackage, DebuggerPackage, Version=10.0.0.0, Culture=neutral, PublicKeyToken=null package n’a pas été chargé correctement.

Ce problème est résolu dans WDK version 10.0.22621.382. Vous pouvez désinstaller le WDK, puis réinstaller le dernier WDK en suivant les instructions fournies dans Télécharger le Kit de pilotes Windows.

Le débogueur dans Visual Studio ne fonctionne pas

Il n’est pas possible de déboguer des pilotes au sein de l’interface Visual Studio lors de l’utilisation de Visual Studio 2022 version 17.2.0 et 17.3 avec le WDK Windows 11, version 22H2 (10.0.22621.382). Pour contourner le problème, effectuez l’une des opérations suivantes : mettre à jour Visual Studio vers la version 17.4.1 ou ultérieure, déboguer avec WinDbg ou utiliser 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-programmes d’installation redistribuables WDF ne fonctionnent pas

À compter de cette version, les co-programmes d’installation redistribuables WDF ne sont plus pris en charge. Plus précisément, sur un ordinateur doté du Windows 11, la version 22H2 WDK et un WDK plus ancien, lors de la création d’un pilote WDF 1.11, msbuild échoue, car il ne trouve pas le coinstaller WDF.

Pour résoudre ce problème, avant d’installer Windows 11, version 22H2 WDK, sauvegardez le dossier \Program files (x86)\windows kit\10\redist\wdf et restaurez-le par la suite. Si vous avez déjà installé le Windows 11, version 22H2 WDK, installez le fichier MSI sur les composants redistribuables WDK 8 sur un ordinateur distinct et copiez le redist dossier dans le dossier ci-dessus. Pour plus d’informations, consultez Composants d’infrastructure redistribuables.

WDK pour Windows 10, version 2004

Problème dans les fonctions ExAllocatePoolZero, ExAllocatePoolQuotaZero et ExAllocatePoolPriorityZero

En mai 2020, OSR a découvert que la nouvelle prise en charge de niveau inférieur pour la mise à zéro automatique des allocations de pool avait un problème qui pouvait entraîner une allocation ne pas être initialisée à zéro sur les systèmes exécutant Windows 10, version 1909. Cela a maintenant été résolu avec une actualisation de sécurité du WDK pour Windows 10 version 2004 et du WDK Entreprise (EWDK) pour Windows 10 version 2004 le 16 décembre. Microsoft a tiré parti de l’actualisation de la sécurité et a mis à jour l’EWDK pour inclure les outils de build Visual Studio 16.7. Microsoft recommande à tous les développeurs de pilotes de désinstaller le Kit de développement logiciel (SDK) d’origine et WDK (version 2004) et d’installer le KIT de développement logiciel (SDK) d’actualisation et WDK ou EWDK.

Pour s’assurer qu’une solution de sécurité complète était en place, un correctif du système d’exploitation a été publié pour Windows 10 version 1909 en novembre. Par conséquent, s’il y avait un pilote créé avec le problème de sécurité, le système d’exploitation serait protégé contre celui-ci.

En plus de télécharger le WDK/EWDK mis à jour, Microsoft recommande que tous les pilotes basculent toutes les allocations de noyau pour utiliser les nouveaux DDIs de mise à zéro du pool qui retournent la mémoire 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 de vérificateur de pilote statique disponible en préversion Windows 10 WDK versions 20236 et ultérieures. La règle identifie toutes les instances dans le code source d’un pilote où les anciens DDI d’allocation de pool sont utilisés et recommande de les remplacer par le nouveau DDI équivalent plus sûr. La règle s’applique aux pilotes WDM, WDF et NDIS.

L’installation de WDK n’active plus les atténuations Spectre pour tous les projets C++ comme dans WDK 1903

Bien que l’installation de WDK active l’atténuation spectre par défaut pour tous les pilotes, elle ne les active plus pour tous les projets C++.

Erreur « Un WDK correspondant à la cible « 10.0.19041.0 » est introuvable.

Lors de la sélection de [Version du KIT de développement logiciel Windows] sur « 10.0 (dernière version installée) » avec WDK 10.0.19041.0 provoque l’erreur « Un WDK correspondant à la version cible « 10.0.19041.0 » est introuvable , même si la version du KIT de développement logiciel est installée.

Contournement: Dans la page des propriétés du projet de pilote (Propriétés >de configuration générales), définissez Version du SDK Windows sur $(LatestTargetPlatformVersion). Si cette option n’est pas disponible, sélectionnez l’option hériter de la valeur par défaut du parent ou du projet.

EWDK et SDV exécutés sur le serveur ont des exigences .NET

L’exécution du vérificateur de pilote statique à partir de l’EWDK nécessite .Net Framework 4.7.2. Selon la version de Windows sur votre système, .NET peut être installé, peut être installé, mais doit être activé ou ne pas l’être. Pour plus d’informations sur la version de .NET installée ou sur l’état de l’installation de .NET, consultez les versions et dépendances du .NET Framework.

La génération DVL échoue avec System.IO.FileNotFoundException

Lorsque vous tentez de créer un journal de vérification du pilote (DVL), l’erreur suivante s’affiche :

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 à la fois dans les environnements de ligne de commande et d’interface graphique graphique. Ce problème est résolu dans une version ultérieure du WDK et peut être vu dans le Windows Insider Preview WDK. Malheureusement, il n’existe aucune solution de contournement pour la version actuelle.

Échec du SDV dans l’EWDK si VS n’est pas installé

SDV a une dépendance sur VCRUNTIME140D.dll dans le cadre de Visual Studio. Par conséquent, l’exécution de l’EWDK sur une machine sans vs installé échoue. Installez Visual Studio sur l’ordinateur pour contourner ce problème.

Driver Verifier n’est pas activé/désactivé lors de l’utilisation de l’Explorateur de tests WDK

Le vérificateur de pilotes n’est pas activé/désactivé lorsque les tests de base de l’appareil sont exécutés à l’aide de l’Explorer de test WDK.

Contournement: Sur l’ordinateur client, activez/désactivez manuellement le vérificateur de pilote conformément à 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 de kits installées sur le même PC, la fonctionnalité « Déployer le pilote » ne fonctionnera pas pour les versions antérieures.

Contournement: Utilisez 1803 sur un ordinateur distinct si la fonctionnalité Déployer le pilote est nécessaire.

Les tests WDTF (Windows Device Testing Framework) s’exécutent désormais uniquement sur des systèmes avec des versions de Windows 10 correspondantes en tant que WDK

Dans WDK pour Windows 10, version 1809, des modifications ont été apportées à WDTF afin de prendre en charge cette version de Windows 10, version 1809. Cela a pour effet que WDTF ne s’exécutera plus sur le système d’exploitation de niveau inférieur. La modification continue avec WDK pour Windows 10, version 2004.

Alterative pour les tests de niveau inférieur

Les tests WDTF dans WDK pour Windows 10 version 1803 peuvent être exécutés sur les versions précédentes de Windows.

APIValidator

Sur une machine arch x86, APIValidator ne peut pas s’exécuter sur les fichiers binaires x64. Si vous créez des pilotes x64 sur un ordinateur x86, l’APIValidator doit être désactivée.

Solution de contournement :

  1. Accédez à la page des propriétés de la solution de pilote.

  2. Sélectionnez APIValidator, puis Général, puis remplacez Exécuter ApiValidator de Oui à Non.

WDK s’exécutant sur des systèmes Windows 7 nécessite une 3033929 de la base de connaissances

Vous devez installer microsoft Security Advisory 3033929 (KB3033929) avant d’installer wdk sur les systèmes exécutant Windows 7. KB3033929 peuvent être téléchargés à partir du Centre de téléchargement Microsoft.

L’installation du wdk génère une erreur à partir de Visual Studio indiquant que le composant de complément est déjà installé

Ce message d’erreur s’affiche si le WDK a été désinstallé, mais si l’extension des pilotes WDK pour Visual Studio n’a pas été désinstallée.

Résolution: Dans Visual Studio, accédez au menu déroulant Extension , choisissez Gérer les extensions, sélectionnez le Kit de pilotes Windows, puis cliquez sur Désinstaller.

Forum aux questions

Comment faire savoir si les versions WDK ou EWDK que j’ai contiennent le correctif pour la mise à zéro des allocations de pool ?

Dans Paramètres système , accédez à Ajouter ou supprimer des programmes, recherchez Windows Driver Kit et notez la version. Le WDK d’origine pour Windows 10, version 2004 a une version de 10.0.19041.1, la version de WDK actualisée est 10.0.19041.685 Pour l’EWDK, une fois l’environnement EWDK lancé, examinez le titre de la fenêtre de commande. La version actualisée contient vb_release_svc_prod1.19041.685. En outre, lorsque vous examinez les variables d’environnement, la variable BuildLab doit afficher vb_release_svc_prod1.19041.685.

Le Kit de développement logiciel (SDK) Windows a également été actualisé, est-ce également nécessaire ?

Non, toutefois, le Kit de développement logiciel (SDK) Windows actualisé contient un correctif pour onecore.lib qui peut être agréable à avoir. En outre, il est généralement judicieux de maintenir le KIT de développement logiciel (SDK) et WDK alignés.

Si le WDK pour Windows 10 version 2004 est déjà installé, dois-je le désinstaller avant d’installer la version actualisée ?

Il est vivement recommandé que si vous avez le KIT de développement logiciel (SDK) 2004 d’origine et WDK, ceux-ci soient désinstallés et que le KIT de développement logiciel (SDK) d’actualisation de la sécurité et WDK soient installés. Cela dit, si le WDK actualisé est installé sur le WDK d’origine, la version actualisée remplacera l’original. Remarque : Dans ce scénario « Ajouter ou supprimer des programmes », les deux versions seront répertoriées.