Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
La compréhension de la distinction entre les classes de configuration de périphérique et les classes d’interface de périphérique est essentielle pour réussir le développement de pilotes Windows et la gestion des périphériques. Bien que ces classes apparaissent similaires, elles servent fondamentalement des objectifs différents dans l’écosystème d’appareils Windows. Les classes d’installation régissent la façon dont le système d’exploitation installe et configure les appareils. Les classes d’interface permettent la communication et les fonctionnalités à l’exécution entre les pilotes, les applications et les appareils. La compréhension de cette distinction vous permet de choisir le type de classe approprié pour l’installation de l’appareil, d’implémenter des notifications d’appareil appropriées et d’éviter les pièges de développement courants.
Un appareil appartient souvent à une classe de configuration et expose plusieurs interfaces d’appareil dans différentes classes d’interface en même temps. Néanmoins, les deux types de classes ont des objectifs différents et ne sont pas interchangeables.
Comparison
Le tableau suivant récapitule les principales différences et relations entre les classes d’installation et les classes d’interface :
| Aspect | Classes d’installation | Classes d’interface |
|---|---|---|
| Objectif principal | Regroupement d’appareils ayant une installation et une configuration similaires | Regroupement d’interfaces d’appareil qui fournissent des fonctionnalités similaires et une communication similaire |
| Utilisation | Utilisé par Windows pendant l’installation du périphérique | Utilisé par les gestionnaires de périphériques et les applications pour l’interaction avec les périphériques |
| Définitions GUID | Généralement défini dans Devguid.h | Défini dans les fichiers d’en-tête spécifiques à l’appareil (par exemple, Ntddmou.h, Ntddpar.h) |
| Critères de regroupement | Appareils installés et configurés de la même façon | En règle générale, les interfaces d’appareil qui implémentent un contrat d’E/S particulier |
| Notification | Non utilisé pour les notifications d’arrivée ou de retrait de l’appareil | Utilisé pour enregistrer les notifications d’arrivée et de retrait de l’interface de l’appareil |
| Examples | Capteurs, microprogramme, Bluetooth | Capture audio, rendu audio, capteur de lumière ambiante |
| Relationnel | Un appareil appartient à une classe d’installation | Un appareil peut exposer zéro ou plusieurs interfaces d’appareil dans différentes classes d’interface |
| À vie | Pertinent lors du processus d’installation | Applicable pendant le fonctionnement de l’appareil |
Il est important de faire la distinction entre les deux types de classes d’appareil : les classes d’interface d’appareil et les classes de configuration d’appareil. Les deux peuvent être facilement confondus. Dans le code en mode utilisateur, les deux classes utilisent le même ensemble de fonctions d’installation de périphériques. Ils utilisent également le même jeu de structures de données (ensembles d’informations sur l’appareil).
Même classe d’installation, différentes classes d’interface :
- Périphériques: Deux capteurs différents
- Classe de configuration : les deux appareils se trouvent dans la classe Capteurs.
- Classes d’interface : un capteur expose une interface d’appareil de capteur de lumière ambiante, et l’autre expose une interface d’appareil accéléromètre.
Considérez une souris USB et un clavier USB. Les deux utilisent la même classe d’interface (Human Interface Device). Mais ils appartiennent à différentes classes d’installation, Souris et Clavier, respectivement.
Même classe d’interface, différentes classes de configuration :
- Appareils : une souris USB et un clavier USB
- Classe d’interface : les deux appareils utilisent la même classe d’interface (périphérique d’interface utilisateur) pour communiquer avec le système.
- Classes d’installation : l’appareil souris appartient à la classe d’installation Souris, tandis que l’appareil clavier appartient à la classe d’installation Clavier.
Classes de configuration d’appareil
Les classes d’installation de périphériques sont des catégories prédéfinies utilisées uniquement pour l’installation et la configuration des appareils dans Windows. Ils aident le système d’exploitation à comprendre comment gérer l’appareil pendant le processus d’installation. Les classes d’installation fournissent un mécanisme permettant de regrouper les appareils installés et configurés de la même façon. Pour plus d’informations sur les classes d’installation, consultez les classes d’installation d’appareils définies par le système disponibles pour les fournisseurs.
Les classes d’installation des appareils Windows sont définies dans le fichier système Devguid.h. Ce fichier définit une série de GUID pour les classes d’installation. Toutefois, les classes d’installation d’appareil représentées dans Devguid.h ne doivent pas être confondues avec les classes d’interface d’appareil. Le fichier Devguid.h contient uniquement des GUID pour les classes d’installation.
Classes d’interface d’appareil
Les classes d’interface d’appareil fournissent un mécanisme permettant de regrouper les interfaces d’appareil en fonction des caractéristiques partagées ou des fonctionnalités. Les pilotes et les applications utilisateur peuvent s’enregistrer pour recevoir des notifications relatives aux interfaces d’appareil dans une classe d’interface particulière. Cela signifie qu’ils sont avertis lorsqu’une interface d’appareil appartenant à cette classe est détectée (apparaît) ou est retirée (disparaît). Ils n’ont pas besoin de suivre les appareils individuels. Les classes d’interface d’appareil regroupent les interfaces d’appareil exposées par les appareils. Vous vous inscrivez aux notifications d’arrivée et de retrait des interfaces de périphérique.
Les définitions des classes d’interface ne sont pas fournies dans un seul fichier. Une classe d’interface d’appareil est toujours définie dans un fichier d’en-tête qui appartient exclusivement à une classe particulière d’appareils. Par exemple, Ntddmou.h contient la définition de GUID_DEVINTERFACE_MOUSE, le GUID représentant la classe d’interface de la souris. Ntddpar.h définit le GUID de la classe d’interface pour les appareils parallèles. Ntddpcm.h définit le GUID de la classe d’interface standard pour les appareils PCMCIA. Ntddstor.h définit le GUID de la classe d’interface pour les périphériques de stockage.
Pour enregistrer les notifications d’interface d’appareil, utilisez les GUID trouvés dans les fichiers d’en-tête spécifiques à la classe d’interface de l’appareil. Ces GUID vous permettent d’être averti lorsqu’une instance d’interface d’appareil apparaît. Si un pilote s’inscrit pour la notification à l’aide d’un GUID de classe d’installation au lieu d’un GUID de classe d’interface, il n’est pas averti lorsqu’une interface arrive.
Lors de la définition d’une nouvelle classe d’interface, n’utilisez pas de GUID unique pour identifier à la fois une classe d’installation et une classe d’interface.