Qu’est-ce que les pilotes DCH et Modern Drivers dans Windows 10

En cherchant des pilotes graphiques Intel HD Graphics ou Realteak Audio pour Windows 10, vous êtes tombé sur des sigles comme DHC (Declarative Componentized Hardware supported apps), Universal Windows Driver (UWD) et Windows Drivers.

Les pilotes universelles est une nouvelle norme apparue depuis Windows 10 version 1809 qui s'impose de plus en plus comme étant obligatoire.
A partir de Windows 2004, UWD est remplacé par Windows Drivers qui est une version avec quelques éléments additionnels.

Voici toutes les explications autour de pilotes DCH et Modern Drivers dans Windows 10.

Qu'est-ce que les pilotes DCH et Modern Drivers dans Windows 10

Qu'est-ce Universal Windows Driver (UWD)

La plateforme Universal Windows Driver vise à uniformiser et simplifier la création de pilotes pour Windows 10.
Notamment cela permet à un éditeur de créer un seul pilote pour Windows 10 pour Desktop et tablette.
Les pilotes Windows universels s'exécutent sur Windows 10 pour les éditions de bureau (Home, Pro et Entreprise), Windows 10 Mobile, Windows 10 IoT Core, Windows 10X, ainsi que Windows Server.

Les pilotes UWD sont limités à appeler certaines API et interfaces de pilote de périphérique (DDI).
Ce dernier étant un point d'entrée pour les pilotes
Lors de la compilation du pilote, si un appel hors des interfaces prévus est faites, le pilote est considéré comme n'étant pas conforme à la norme UWD.
Cela permet donc d'encadrer ce que les pilotes peuvent faire ou non.

Qu'est-ce Windows Drivers ?

C'est la dernière version de UWD à partir de Windows 10 2004 avec quelques modifications.
On distingue deux type :

  • Windows Drivers qui fonctionne sur toutes les versions de Windows 10
  • Windows Desktop Drivers qui ne fonctionne que sur les version dites de bureau. Ainsi le pilote ne pourra pas être installé sur Windows 10X

Les pilotes Windows Drivers doivent répondre aux exigeances suivantes :

  • Conforme aux principes de conception DCH
  • Suivre les principes de l'isolation des packages depilotes
  • Suivre les exigences de stratification de l'API.
  • Certifié avec le processus de certification du programme de compatibilité matérielle Windows à l'aide du kit de laboratoire matériel. Notez que les exigences du processus de certification du programme de compatibilité matérielle Windows s'appliquent aux pilotes KMDF et UMDF.

Qu'est-ce qu'un pilote DHC et Modern Driver

DCH (Declarative Componentized Hardware supported apps) est un format de paquet de pilotes qui s'installent dans Universal Windows Platform (UWP).
Le but est de suivre de bonnes pratiques lorsqu'un fabriquant écrits un pilotes.
C'est un format obligatoire pour Windows 10.

Notamment les pilotes DHC doivent suivre les recommandations suivantes :

  • contient un fichier INF et des binaires qui s'installent et s'exécutent sur les éditions de Windows 10 basées sur la plateforme Windows universelle (UWP).
  • Séparer les logiciels additionnels du pilote afin de pouvoir fournir le pilote seul. Cela permet notamment son déploiement via Windows Update

Ainsi par exemple Intel ne peut pas fournir le panneau de configuration Intel dans les pilotes DCH Intel HD Graphics.
De même NVIDIA ne peut pas fournir le panneau de configuration NVIDIA.

Les autres recommandations de Microsoft pour les pilotes DHC

Il existe trois principes de conception à prendre en compte pour qu'un pilote Windows soit conforme à DCH :

  • Déclaratif (D): installez le pilote en utilisant uniquement les directives INF déclaratives. N'incluez pas les co-installateurs ou les fonctions RegisterDll.
  • Composé (C): les personnalisations spécifiques à l'édition, spécifiques à l'OEM et facultatives du pilote sont distinctes du package de pilotes de base. Par conséquent, le pilote de base, qui fournit uniquement les fonctionnalités principales du périphérique, peut être ciblé, piloté et entretenu indépendamment des personnalisations.
  • Application de support matériel (H): tout composant d'interface utilisateur (UI) associé à un pilote Windows doit être conditionné en tant qu'application de support matériel (HSA) ou préinstallé sur le périphérique OEM. Un HSA est une application optionnelle spécifique au périphérique associée à un pilote. L'application peut être une application Universal Windows Platform (UWP) ou Desktop Bridge. Vous devez distribuer et mettre à jour un HSA via le Microsoft Store. Pour plus de détails, consultez Application de support matériel (HSA): étapes pour les développeurs de pilotes et Application d'assistance matérielle (HSA): étapes pour les développeurs d'applications.

En règle générale, un fabricant de périphérique ou un fournisseur de matériel indépendant (IHV) écrit le pilote de base.
Ensuite, un constructeur de système ou un fabricant d'équipement d'origine (OEM) fournit tous les packages de composants en option.

De quoi se compose un pilote UWP ?

Un package de pilote Windows universel contient un fichier INF et des binaires qui s'installent et s'exécutent sur les éditions de Windows 10 basées sur la plateforme Windows universelle (UWP).
Ils s'installent et s'exécutent également sur d'autres éditions de Windows 10 qui partagent un ensemble commun d'interfaces.
Le binaire du pilote peut utiliser KMDF, UMDF 2 ou le modèle de pilote Windows (WDM).

Deux dossiers sont utilisés :

  • Windows\system32\DriverStore : c'est le magasin de pilotes où sont copiés tout le package avant d'être installé dans le système
  • C:\Windows\system32\drivers : l'emplacement où est installé le fichier .sys du pilote et à partir duquel Windows 10 appelle à chaque démarrage

Plus de détails :

Pour aller plus loin