Partager via


IOCTL_HID_SET_FEATURE IOCTL (hidclass.h)

La demande IOCTL_HID_SET_FEATURE envoie un rapport de fonctionnalité à une 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 Parameters.DeviceIoControl.InputBufferLength membre est défini sur la taille, en octets, d’une mémoire tampon d’entrée allouée au demandeur qui contient un rapport de fonctionnalité de classe HID.

Taille de la mémoire tampon d’entrée en octets. La mémoire tampon doit être suffisamment grande pour contenir le rapport de fonctionnalité 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 de l’ID est zéro.

Le Irp->AssociatedIrp.SystemBuffer membre pointe vers la mémoire tampon d’entrée qui contient 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 sur un ID de rapport différent de zéro ; sinon, le demandeur doit définir le premier octet sur zéro. Le rapport de fonctionnalité se trouve à l’adresse ((PUCHAR)ReportBuffer + 1).

Gestion du minidriver

Irp->UserBuffer pointe vers une structure HID_XFER_PACKET que le pilote de classe HID utilise pour entrer les membres suivants :

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

Taille de la mémoire tampon d’entrée en octets. La mémoire tampon doit être suffisamment grande pour contenir le rapport de sortie 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 de l’ID est zéro.

Gestion du minidriver

Taille d’une structure HID_XFER_PACKET .

Mémoire tampon de sortie

Aucun.

Longueur de la mémoire tampon de sortie

Aucun.

Bloc d’état

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

  • L’information est définie sur zéro.
  • L’é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 du minidriver

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

  • Les informations sont définies sur le nombre d’octets transférés vers l’appareil.
  • L’é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, doivent s’assurer que le champ Informations du bloc status est correct et ne pas modifier le contenu du champ État.

Configuration requise

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

Voir aussi