Partager via


Classes d’installation et classes d’interface

Il est important de faire la distinction entre les deux types de classes d’appareils : les classes d’interface d’appareil et les classesde configuration d’appareil. Les deux peuvent être facilement confondus, car dans le code en mode utilisateur, le même ensemble de fonctions d’installation d’appareil et le même ensemble de structures de données (jeux d’informations sur les appareils) sont utilisés avec les deux classes. En outre, un appareil appartient souvent à une classe d’installation et à plusieurs classes d’interface en même temps. Néanmoins, les deux types de classes ont des objectifs différents, utilisent différentes zones dans le Registre et s’appuient sur un ensemble différent de fichiers d’en-tête pour définir des GUID de classe.

Les classes de configuration d’appareil fournissent un mécanisme permettant de regrouper les appareils qui sont installés et configurés de la même façon. Par exemple, tous les lecteurs de CD-ROM appartiennent à la classe d’installation CDROM.

Les classes d’interface d’appareil fournissent un mécanisme de regroupement d’appareils en fonction de caractéristiques ou de fonctionnalités partagées. Au lieu de suivre la présence dans le système d’un appareil individuel, les pilotes et les applications utilisateur peuvent s’inscrire pour être avertis de l’arrivée ou de la suppression de tout appareil appartenant à une classe d’interface particulière.

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.

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, etc.

Les GUID dans les fichiers d’en-tête spécifiques à la classe d’interface d’appareil doivent être utilisés pour s’inscrire pour la notification d’arrivée d’un instance d’une interface d’appareil. Si un pilote s’inscrit pour recevoir une 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’installation ou d’une nouvelle classe d’interface, n’utilisez pas un GUID unique pour identifier à la fois une classe d’installation et une classe d’interface.

Pour plus d’informations sur les GUID, consultez Utilisation de GUID dans les pilotes.