Share via


Recommandations DIFx

À compter de Windows 10 version 1607 (Redstone 1), les outils DIFx (Driver Install Frameworks) (Difxapi.dll, Difxapp.dll, Difxappa.dllet DPInst.exe) sont déconseillés et ne sont plus inclus dans le WDK.

Au lieu de cela, nous vous recommandons de fournir votre package de pilotes en tant que package de pilotes autonome qui ne nécessite pas de programme d’installation. Il s’agit d’un package autonome qui ajoute ses propres paramètres ou configuration dont il a besoin pour fonctionner correctement, plutôt que de dépendre d’un programme d’installation pour modifier l’état du système dont le package de pilotes peut dépendre. Les packages de pilotes autonomes sont nécessaires pour prendre en charge des scénarios de package de pilotes, tels que la distribution du package de pilotes via Windows Update et l’ajout du package de pilotes à une image hors connexion. Nous vous recommandons de publier un package de pilotes autonome à livrer via Windows Update aux systèmes auxquels votre matériel est branché. La première étape de la publication du package de pilotes sur Windows Update consiste à envoyer votre package de pilotes au Centre de développement matériel Windows.

Si vous choisissez d’utiliser DIFx de toute façon, vous devez utiliser un wdk plus ancien pour obtenir les bons outils. Les mises en garde suivantes s’appliquent :

  • Si votre package de pilotes spécifie uniquement des valeurs TargetOSVersion de Windows 8.1 ou ultérieures, vous ne pouvez pas utiliser l’action personnalisée MSI DIFxApp (Difxapp.dll et Difxappa.dll) en raison de la dépendance de DIFxApp vis-à-vis de GetVersionEx, une API modifiée à partir de Windows 8.1. TargetOSVersion est spécifié dans la section Fabricant INF. DIFxApp expose des actions personnalisées MSI telles que MsiProcessDrivers, MsiInstallDrivers et MsiUninstallDrivers. Si votre package de pilotes spécifie des valeurs TargetOSVersion de Windows 8.1 ou ultérieures, vous ne pouvez pas utiliser ces actions personnalisées dans votre MSI.
  • À compter de Windows 8.1, les applications qui sont liées à Difxapi.dll doivent contenir un manifeste d’application ciblant la version du système d’exploitation sur laquelle l’application est destinée à s’exécuter. Cela est dû à la dépendance de DIFxAPI sur GetVersionEx, une API qui a changé à partir de Windows 8.1. Pour plus d’informations sur les modifications apportées à GetVersionEx dans Windows 8.1, consultez Ciblage de votre application pour Windows.
  • Si votre package de pilotes utilise la partie BuildNumber de TargetOSVersion (introduite dans Windows 10, version 1607 (build 14310 et ultérieure)), vous ne pouvez pas utiliser les outils DIFx avec ce package de pilotes. Les outils DIFx ne prennent pas en charge le ciblage BuildNumber.
  • Utilisez DIFx version 2.1, qui est disponible dans windows 7 WDK via le wdk Windows 10 version 1511. Bien qu’une version DIFx de la version 2.1 soit disponible dans les versions antérieures de WDK, elle n’était pas compatible avec Windows 7 et les versions ultérieures de Windows.
  • Les anciennes WDK contiennent uniquement des versions x86 et amd64 des fichiers binaires DIFx. Les fichiers binaires DIFx ne sont pas disponibles pour d’autres architectures.

Bien qu’il ne soit plus mis à jour, vous pouvez trouver la documentation de référence d’API pour DIFx sur Difxapi.h. Si vous utilisez les API DriverPackagePreinstall, DriverPackageInstall et DriverPackageUninstall, envisagez de basculer vers DiInstallDriver et DiUninstallDriver.

Si vous avez toujours besoin d’un programme d’installation personnalisé pour installer votre package de pilotes, utilisez l’outil en ligne de commande PnPUtil ou un programme d’installation personnalisé qui appelle les fonctions d’installation du pilote.

De même, si vous avez besoin du programme d’installation personnalisé pour désinstaller le package de pilotes, utilisez PnPUtil ou un programme d’installation personnalisé qui appelle DiUninstallDriver ou SetupUninstallOEMInf.