IOCTL_HID_SET_POLL_FREQUENCY_MSEC IOCTL (hidclass.h)
La requête IOCTL_HID_SET_POLL_FREQUENCY_MSEC définit la fréquence d’interrogation, en millisecondes, pour une collection de niveau supérieur.
Les applications en mode utilisateur ou les pilotes en mode noyau qui effectuent des lectures irrégulières et opportunistes sur un appareil interrogé doivent fournir un intervalle d’interrogation de zéro. Dans ce cas, IOCTL_HID_SET_POLL_FREQUENCY_MSEC ne modifie pas réellement la fréquence d’interrogation de l’appareil ; mais si les données du rapport ne sont pas obsolètes lorsqu’elles sont lues, la lecture est effectuée immédiatement avec les données de rapport les plus récentes pour la collection indiquée. Si les données du rapport sont obsolètes, elles sont actualisées immédiatement, sans attendre l’expiration de l’intervalle d’interrogation, et la lecture est terminée avec les nouvelles données.
Si la valeur de l’intervalle d’interrogation fourni dans l’IRP n’est pas égale à zéro, elle doit être >= MIN_POLL_INTERVAL_MSEC et <= MAX_POLL_INTERVAL_MSEC.
L’interrogation peut être limitée s’il existe plusieurs collections de niveau supérieur.
Pour obtenir des informations générales sur les appareils HIDClass, consultez Collections HID.
Code principal
Mémoire tampon d'entrée
Parameters.DeviceIoControl.InputBufferLength dans l’emplacement de la pile d’E/S de l’IRP indique la taille, en octets, de la mémoire tampon d’entrée, qui doit être >= sizeof(ULONG).
Irp->AssociatedIrp.SystemBuffer contient le nouvel intervalle d’interrogation.
Longueur de la mémoire tampon d’entrée
Valeur supérieure ou égale à sizeof(ULONG).
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 le membre Status de Irp-IoStatus> sur STATUS_SUCCESS si le transfert s’est terminé sans erreur. Sinon, il est défini sur un code d’erreur NTSTATUS approprié.
Configuration requise
Condition requise | Valeur |
---|---|
En-tête | hidclass.h (inclure Hidclass.h) |