Partager via


IOCTL_HID_GET_FEATURE IOCTL (hidclass.h)

La requête IOCTL_HID_GET_FEATURE retourne un rapport de fonctionnalité associé à un collection de niveau supérieur.

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

Le membre Parameters.DeviceIoControl.OutputBufferLength spécifie la taille, en octets, d’une mémoire tampon de sortie allouée par l’demandeur. Le pilote de classe HID utilise cette mémoire tampon pour retourner un rapport de fonctionnalité.

Si la collection inclut des ID de rapport, le demandeur doit définir le premier octet de la mémoire tampon de sortie sur un ID de rapport différent de zéro. Sinon, le demandeur doit définir le premier octet de la mémoire tampon de sortie sur zéro.

gestion des minidrivers

Irp->UserBuffer pointe vers une structure HID_XFER_PACKET utilisée par le pilote de classe HID pour entrer les membres suivants :

Longueur de la mémoire tampon d’entrée

Taille de la mémoire tampon en octets. La mémoire tampon doit être suffisamment grande pour contenir le rapport de fonctionnalités plus un octet supplémentaire qui spécifie un ID de rapport différent de zéro. Si l’ID de rapport n’est pas utilisé, la valeur d’ID est égale à zéro.

gestion des minidrivers

Taille de la structure HID_XFER_PACKET.

Mémoire tampon de sortie

Le membre Irp->MdlAddress pointe vers la mémoire tampon de sortie allouée par l’appelant que le pilote de classe HID utilise pour retourner le rapport de fonctionnalité. Le premier octet de la mémoire tampon, que le demandeur utilise pour entrer un ID de rapport ou zéro, n’est pas modifié. Le rapport de fonctionnalités, à l’exclusion de son ID de rapport, si les ID de rapport sont utilisés, est retourné à ((PUCHAR)Irp->MdlAddress + 1).

gestion des minidrivers

((PHID_XFER_PACKET)(Irp->UserBuffer))->reportBuffer pointe vers la mémoire tampon de sortie allouée par l’appelant que le minidriver HID utilise pour retourner un rapport de fonctionnalité.

Longueur de la mémoire tampon de sortie

Longueur de la mémoire tampon qui contient le rapport.

gestion des minidrivers

Taille de la structure HID_XFER_PACKET.

Bloc d’état

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

  • Informations est définie sur le nombre d’octets transférés à partir de l’appareil.
  • 'état est défini sur STATUS_SUCCESS si le transfert s’est terminé sans erreur. Sinon, il est défini sur un code d’erreur NTSTATUS approprié.

gestion des minidrivers

Les minidrivers HID qui exécutent les E/S sur l’appareil définissent les champs suivants de Irp->IoStatus:

  • Informations est définie sur le nombre d’octets transférés à partir de l’appareil.
  • 'état est défini sur STATUS_SUCCESS si le transfert s’est terminé sans erreur. Sinon, il est défini sur un code d’erreur NTSTATUS approprié.

Les minidrivers HID qui appellent d’autres pilotes avec ce IOCTL pour effectuer les E/S sur leur appareil, doivent s’assurer que le champ Information du bloc d’état est correct et ne modifie pas le contenu du champ Status.

Exigences

Exigence Valeur
d’en-tête hidclass.h (include Hidclass.h)

Voir aussi