Recherche et ouverture d'une collection HID
Cet article décrit comment les applications en mode utilisateur et les pilotes en mode noyau trouvent et ouvrent une collection HID de premier niveau.
Application en mode utilisateur
Microsoft Windows fournit des routines d'installation des appareils (fonctions SetupDiXxx) pour trouver et identifier les appareils de la classe HID. Windows fournit d'autres fonctions Win32 pour initialiser et se connecter à une collection HID.
Une fois qu'une application en mode utilisateur est chargée, elle effectue la séquence d'opérations suivante :
Appelle HidD_GetHidGuid pour obtenir le GUID défini par le système pour les appareils de la classe HID.
Appelle SetupDiGetClassDevs pour obtenir un handle vers un ensemble opaque d'informations sur les appareils qui décrit les interfaces d'appareils prises en charge par toutes les collections HID actuellement installées dans le système. L'application doit spécifier DIGCF_PRESENT et DIGCF_DEVICEINTERFACE dans le paramètre Flags transmis à SetupDiGetClassDevs.
Appelle plusieurs fois SetupDiEnumDeviceInterfaces pour récupérer toutes les informations disponibles sur les interfaces.
Appelle SetupDiGetDeviceInterfaceDetail pour formater les informations d'interface pour chaque collection dans une structure SP_INTERFACE_DEVICE_DETAIL_DATA. Le membre DevicePath de cette structure contient le nom en mode utilisateur que l'application utilise avec la fonction Win32 CreateFile pour obtenir un handle de fichier vers une collection HID.
Appelle CreateFile pour obtenir un handle de fichier vers une collection HID.
Pilote en mode noyau
Si un pilote en mode noyau est un pilote de fonction ou de filtre, il attache un objet appareil à la pile d'appareils de la collection HID. Le pilote ne doit utiliser qu'une requête de création pour ouvrir l'appareil.
Si le pilote n'est pas un pilote de fonction ou de filtre, il utilise généralement la notification Plug-in pour trouver une collection. Une fois que le pilote a trouvé une collection, il utilise une requête de création pour ouvrir la collection.