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.
En mode utilisateur, les appareils appartenant à des classes d’installation d’appareil ou des classes d’interface d’appareil sont gérés à l’aide d’éléments d’informations sur l’appareil et de jeux d’informations sur l’appareil. Un jeu d’informations sur l’appareil se compose d’éléments d’informations sur l’appareil pour tous les appareils appartenant à une classe d’installation d’appareil ou à une classe d’interface d’appareil.
Chaque élément d'information sur l'appareil contient un handle vers le devnode de l'appareil et un pointeur vers une liste liée de toutes les interfaces d'appareil associées à l'appareil décrit par cet élément. Si un jeu d’informations sur l’appareil décrit les membres d’une classe de configuration, l’élément peut ne pas pointer vers des interfaces d’appareil, car les membres de la classe d’installation ne sont pas nécessairement associés à une interface.
Le diagramme suivant montre la structure interne d’un jeu d’informations sur l’appareil.
Création d’un jeu d’informations sur l’appareil
Après avoir créé un jeu d’informations d’appareil avec SetupDiCreateDeviceInfoList, des éléments d’informations sur l’appareil peuvent être créés et ajoutés à la liste un à la fois à l’aide de SetupDiCreateDeviceInfo. Vous pouvez également appeler SetupDiGetClassDevs pour créer un jeu d’informations d’appareil composé de tous les appareils associés à une classe de configuration d’appareil ou à une classe d’interface d’appareil spécifiée.
Énumération des informations sur l’appareil
Une fois qu’un ensemble d’informations sur l’appareil est créé, les appareils et les interfaces d’appareil qui appartiennent au jeu peuvent être énumérés, mais différentes opérations sont requises pour chaque type d’énumération. SetupDiEnumDeviceInfo énumère tous les appareils appartenant au jeu d’informations qui répondent à certains critères. Chaque appel à SetupDiEnumDeviceInfo extrait une structure SP_DEVINFO_DATA qui correspond approximativement à un élément d’informations d’appareil. SP_DEVINFO_DATA contient le GUID de la classe à laquelle appartient le périphérique et un handle d’instance de périphérique qui pointe vers le devnode du périphérique. La principale différence entre une structure SP_DEVINFO_DATA et un élément d’appareil complet est que SP_DEVINFO_DATA ne contient pas la liste liée des interfaces associées à l’appareil. Par conséquent, SetupDiEnumDeviceInfo ne peut pas être utilisé pour énumérer les interfaces dans le jeu d’informations sur l’appareil.
Pour énumérer les interfaces d’appareil dans un jeu d’informations sur l’appareil, appelez SetupDiEnumDeviceInterfaces. Cette routine décrit tous les éléments d’informations sur l’appareil dans le jeu d’informations sur l’appareil, extrait les interfaces de la liste d’interface de chaque élément et retourne une interface avec chaque appel. Si SetupDiEnumDeviceInterfaces est passé une structure SP_DEVINFO_DATA en tant qu’entrée dans son deuxième paramètre, elle limite l’énumération aux seules interfaces associées à l’appareil indiqué par SP_DEVINFO_DATA.
SetupDiEnumDeviceInterfaces retourne une structure SP_DEVICE_INTERFACE_DATA . SP_DEVICE_INTERFACE_DATA contient le GUID de la classe d’interface et d’autres informations sur l’interface, y compris un champ réservé qui contient des informations encodées qui peuvent être utilisées pour obtenir le nom de l’interface. Pour obtenir le nom de l’interface, une étape supplémentaire est requise : SetupDiGetDeviceInterfaceDetail doit être appelé. SetupDiGetDeviceInterfaceDetail retourne une structure de type SP_DEVICE_INTERFACE_DETAIL_DATA qui contient le chemin d’accès dans l’arborescence d’objets système qui définit l’interface.