Partager via


Suppression des co-programmes d’installation des packages de pilotes

Attention

À compter de janvier 2023, les packages de pilotes contenant un co-programme d’installation ne sont plus signés par le portail du Centre de développement matériel. Pour plus d’informations sur l’exigence, reportez-vous aux spécifications et stratégies du programme de compatibilité matérielle Windows, en particulier les stratégies 22H2, section Device.DevFund.INF.Declarative.

Cette page traite des raisons courantes pour lesquelles les co-programmes d’installation doivent être présents dans un package de pilotes et propose des mécanismes permettant d’effectuer la même tâche sans co-programme d’installation.

Programme d’installation de co-programmes d’installation WDF et WinUSB

Le co-programme d’installation WDF et le co-programme d’installation WinUSB ne sont pas requis sur un système exécutant Windows 10 et versions ultérieures. Les références de co-programme d’installation WDF peuvent être supprimées sans aucun travail supplémentaire. Les références de co-programme d’installation WinUSB peuvent être supprimées et WinUSB doit être référencée dans le package de pilotes INF à l’aide des directives Include et Needs.

Conseils sur le package de pilotes WinUSB

Installation de logiciels présentant l’interface utilisateur

Au lieu de lancer une application pendant une installation, fournissez une application plateforme Windows universelle installée à l’aide d’une directive AddSoftware à partir d’une section DDInstall.Software du package de pilotes INF.

Pour plus d’informations, voir Associer un pilote à une application Universal Windows Platform (UWP). Une directive AddSoftware est prise en charge sur Windows 10, version 1703 et versions ultérieures de Windows.

Pour plus d’informations, consultez l’installation du logiciel associé ci-dessous.

Définition des noms conviviaux des appareils

Fichier INF

Un inf du package de pilotes peut définir le nom convivial de l’appareil comme suit :

[DDInstall.HW]
AddReg = FriendlyName_AddReg

[FriendlyName_AddReg]
HKR,,FriendlyName,, "Device Friendly Name"

Runtime

Le nom convivial peut être défini par le pilote pendant l’IRP de démarrage ou la phase PrepareHardware en définissant la propriété DEVPKEY_Device_FriendlyName avec l’une des API suivantes :

Autres paramètres/configurations d’appareil :

Lorsque cela est possible, le pilote peut modifier les paramètres et la configuration de l’appareil au sein du pilote Démarrer IRP ou de la phase PrepareHardware . Lors de la modification de l’état au moment de l’exécution, le pilote doit respecter les exigences d’isolation du package de pilotes. Ces exigences contiennent des conseils sur la configuration du pilote et la disposition de l’état et aident à rendre le pilote plus résilient aux modifications externes, plus faciles à mettre à jour et plus faciles à installer.

Pour les paramètres et la configuration qui ne peuvent pas être définis dans le pilote lui-même, un package de pilotes peut également inclure des composants d’exécution en mode utilisateur qui modifient les paramètres et la configuration. Il peut s’agir d’une application orientée utilisateur ou d’un service Win32 qui met à jour la configuration. Pour plus d’informations sur la façon d’inclure des logiciels en mode utilisateur à utiliser avec un appareil, consultez Utilisation d’un fichier INF de composant.

Si un composant persistant tel qu’un service est utilisé, assurez-vous que ses fonctionnalités sont nécessaires et ne peuvent pas être effectuées de manière moins gourmande en ressources, comme dans un package de pilotes INF ou dans le pilote lui-même. Pour plus d’informations sur la façon de s’assurer qu’un service s’exécute uniquement lorsque des appareils pertinents sont connectés, consultez Déclencheurs de service, services Win32 interagissant avec les appareils et Inscription pour les notifications d’interface d’appareil. Le service doit également répondre aux exigences les plus récentes, par exemple en passant le validateur d’API.

Installation du logiciel associé

La partie « Componentized » des exigences du pilote DCH a introduit un concept appelé SoftwareComponent, qui est un mécanisme permettant de dissocier l’installation d’un pilote de périphérique de son logiciel associé. Lorsqu’un composant logiciel est créé par l’inf, il crée automatiquement un appareil enfant mappé au composant logiciel. Cet appareil enfant existe à des fins d’installation du logiciel associé à l’appareil parent. Ce logiciel peut être installé et mis à jour indépendamment du périphérique principal et du pilote.

Dans un package de pilotes SoftwareComponent INF, le mécanisme recommandé pour installer des logiciels utilise une directive AddSoftware. Cela déclenche le téléchargement et l’installation de logiciels à partir du Windows Store.

Dépendances entre pilotes et appareils

Dépendances de classement du démarrage/de l’énumération de l’appareil

Dans la mesure du possible, les dépendances entre appareils ou les exigences de classement de démarrage doivent être évitées.

Pour les appareils énumérés par ACPI, l’objet de dépendance (_DEP) peut être utilisé dans le microprogramme ACPI pour appliquer l’ordre de démarrage de l’appareil. Pour plus d’informations, consultez Gestion des appareils espace de noms.

Les pilotes peuvent répondre aux IRP_MN_QUERY_DEVICE_RELATIONS IRP pour définir des relations entre les appareils, telles que les relations de suppression. Pour plus d’informations, consultez IRP_MN_QUERY_DEVICE_RELATIONS.

Dépendances d’installation du package de pilotes

La directive CopyInf peut également être utilisée pour installer un package de pilotes supplémentaire pendant le même appel d’API d’installation qu’un autre pilote. Le package de pilotes transmis à l’API d’installation est installé avant les packages de pilotes référencés par CopyInf, mais les packages de pilotes référencés par CopyInf ne sont pas garantis d’être installés dans un ordre particulier.

Configuration des composants à partir de plusieurs fournisseurs groupés dans un package de pilotes unique

Les packages de pilotes prennent en charge un type d’INF de package de pilotes appelé inf d’extension. Il s’agit d’un fichier INF spécifiquement conçu pour augmenter et étendre les fonctionnalités d’un inf du package de pilotes « base ». Une extension peut ne pas fournir le pilote de fonction pour l’appareil, mais peut utiliser d’autres directives ou écrire d’autres paramètres pour un appareil. Lors de l’installation d’un pilote, un seul inf du package de pilotes de base est sélectionné à l’aide du classement des pilotes pour fournir les fonctionnalités de l’appareil, alors toutes les fonctions INF d’extension sont sélectionnées pour l’appareil. Pour plus d’informations, consultez Utilisation d’un fichier INF d’extension.

Un paradigme courant pour l’utilisation des fichiers INF du package de pilotes d’extension est destiné au fabricant de matériel à fournir l’INF du package de pilotes de base, et pour une expédition OEM qui fait partie d’un système pour créer un package de pilotes d’extension INF qui le personnalise pour ce système.

Installation/orchestration des mises à jour du microprogramme

Différents mécanismes de mise à jour du microprogramme sont recommandés en fonction de la nature de l’appareil mis à jour. Chacun des éléments suivants peut être utilisé pour expédier et installer une mise à jour du microprogramme via Windows Update.

Non amovible

La plateforme de mise à jour du microprogramme UEFI est conçue pour mettre à jour les composants d’un système qui ne peuvent pas être supprimés, tels que le microprogramme système. Pour plus d’informations, consultez la plateforme de mise à jour du microprogramme UEFI.

Amovible

Pour les appareils amovibles tels que les périphériques HID ou USB, le modèle CFU permet des mises à jour de microprogramme sécurisées. Pour plus d’informations, consultez Mise à jour du microprogramme du composant.

Implémentation personnalisée

Vous pouvez également écrire un pilote personnalisé qui met à jour le microprogramme de l’appareil à la discrétion du pilote. Pour plus d’informations, consultez Le pilote de mise à jour du microprogramme personnalisé.