Share via


IOCTL_HID_GET_COLLECTION_DESCRIPTOR IOCTL (hidclass.h)

La requête IOCTL_HID_GET_COLLECTION_DESCRIPTOR obtient les données préparées d’une collection de niveau supérieur, que le pilote de classe HID a extraites du descripteur de rapport de l’appareil physique lors de l’initialisation de l’appareil.

Pour obtenir des informations générales sur les appareils HIDClass, consultez Collections HID.

Code principal

IRP_MJ_DEVICE_CONTROL

Mémoire tampon d'entrée

Parameters.DeviceIoControl.OutputBufferLength dans l’emplacement de la pile d’E/S de l’IRP indique la taille, en octets, de la mémoire tampon de sortie spécifiée par Irp-UserBuffer>.

Mémoire tampon de sortie

Irp->UserBuffer est un pointeur PVOID vers une mémoire tampon allouée par le demandeur que le pilote de classe HID utilise pour retourner une longueur variable _HIDP_PREPARSED_DATA structure. Cette mémoire tampon doit être allouée à partir d’un pool non paginé.

Longueur de la mémoire tampon de sortie

La taille, en octets, de la structure de données préparées est obtenue à l’aide de IOCTL_HID_GET_COLLECTION_INFORMATION.

Bloc d’état

Le pilote de classe HID définit les champs suivants de Irp-IoStatus> :

  • Les informations sont définies sur la taille, en octets, des données préparées.
  • L’état est défini sur STATUS_SUCCESS si les données préparées ont été récupérées sans erreur. Sinon, il est défini sur un code d’erreur NTSTATUS approprié. Si la mémoire tampon de sortie fournie par le demandeur n’est pas suffisamment grande pour contenir les données préparées, status est défini sur STATUS_INVALID_BUFFER_SIZE.

Remarques

La structure _HIDP_PREPARSED_DATA contient les données préparéesd’une collection de niveau supérieur.

typedef struct _HIDP_PREPARSED_DATA * PHIDP_PREPARSED_DATA;

Une application en mode utilisateur appelle HidD_GetPreparsedData pour obtenir les données préparées d’une collection de niveau supérieur dans une structure _HIDP_PREPARSED_DATA de longueur variable.

Un pilote en mode noyau utilise une requête IOCTL_HID_GET_COLLECTION_DESCRIPTOR pour obtenir un pointeur vers les données préparées d’une collection de niveau supérieur.

La structure interne d’une structure _HIDP_PREPARSED_DATA est réservée à une utilisation interne du système.

Configuration requise

Condition requise Valeur
En-tête hidclass.h (inclure Hidclass.h)

Voir aussi

HidD_FreePreparsedData

HidD_GetPreparsedData