Partager via


Obtention de données prédéfinies

Cet article décrit comment les applications en mode utilisateur et les pilotes en mode noyau obtiennent les données prédéfinies d’une collection HID, qui est une structure opaque qui décrit les rapports HID d’une collection.

Application en mode utilisateur

Une application en mode utilisateur doit obtenir les données préparsées d’une collection avant d’appeler l’une des routines de prise en charge HIDClass qui nécessitent les données prédéfinies . Une application doit conserver l’accès aux données prédéfinies d’une collection tant qu’elle dispose d’un fichier ouvert sur l’appareil.

Après avoir ouvert un fichier sur une collection HID, une application appelle HidD_GetPreparsedData pour retourner les données prédéfinies d’une collection dans une mémoire tampon allouée par routine.

Les applications doivent appeler HidD_FreePreparsedData lorsque l’application n’a plus besoin d’accéder à une collection.

Pilote en mode noyau

Une fois qu’un pilote en mode noyau ouvre une collection HID, le pilote obtient les données préparées d’une collection de la manière suivante :

  • Obtient la longueur des données préparées de la collection

  • Obtient les données prédéfinies de la collection

Pour déterminer la longueur des données prédéfinies, le pilote utilise une requête IOCTL_HID_GET_COLLECTION_INFORMATION. Cette requête retourne une structure HID_COLLECTION_INFORMATION. Le membre DescriptorSize de cette structure spécifie la taille, en octets, des données prédéfinies d’une collection. Le pilote doit allouer une mémoire tampon à partir d’un pool non paginé d’au moins cette taille pour contenir les données prédéfinies.

Après avoir alloué la mémoire tampon pour les données préparsées, le pilote utilise une requête IOCTL_HID_GET_COLLECTION_DESCRIPTOR pour obtenir les données préparsées.

Après avoir obtenu les données prédéfinies, le pilote peut l’utiliser avec les routines de prise en charge **HidP_**Xxx HID pour obtenir des informations sur les fonctionnalités de la collection HID et extraire les données de contrôle à partir de rapports HID.