IOCTL_SET_NUM_DEVICE_INPUT_BUFFERS IOCTL (hidclass.h)
La requête IOCTL_SET_NUM_DEVICE_INPUT_BUFFERS définit le nombre de mémoires tampons pour la file d’attente du rapport d’entrée d’un collection de niveau supérieur.
Chaque file d’attente de rapport d’entrée est implémentée en tant que mémoire tampon en anneau. Si une collection transmet des données au pilote de classe HID plus rapidement que le pilote peut le lire, certaines données peuvent être perdues. Pour éviter ce type de perte, vous pouvez utiliser une demande de IOCTL_SET_NUM_DEVICE_INPUT_BUFFERS pour ajuster le nombre de mémoires tampons que contient la file d’attente du rapport d’entrée. Le pilote de classe HID nécessite un minimum de deux mémoires tampons d’entrée. Sur Windows 2000, le nombre maximal de mémoires tampons d’entrée que le pilote de classe HID prend en charge est 200, et sur Windows XP et versions ultérieures, le nombre maximal de mémoires tampons d’entrée que le pilote de classe HID prend en charge est 512. Le nombre par défaut de mémoires tampons d’entrée est 32.
Pour obtenir des informations générales sur les appareils HIDClass, consultez collections HID.
Code principal
Mémoire tampon d’entrée
Irp->AssociatedIrp.SystemBuffer pointe vers une mémoire tampon d’entrée de taille ULONG qui reçoit le nouveau nombre de mémoires tampons pour la file d’attente du rapport d’entrée.
Parameters.DeviceIoControl.InputBufferLength dans l’emplacement de la pile d’E/S de l’IRP contient la taille, en octets, de la mémoire tampon d’entrée à Irp->AssociatedIrp.SystemBuffer. Cette taille doit être taille de(ULONG).
Longueur de la mémoire tampon d’entrée
Taille d’un ULONG.
Mémoire tampon de sortie
Aucun.
Longueur de la mémoire tampon de sortie
Aucun.
Bloc d’état
Si la requête réussit, le pilote de classe HID définit le champ État de Irp->IoStatus sur STATUS_SUCCESS ; sinon, il définit le champ Status sur un code d’erreur NTSTATUS approprié.
Exigences
Exigence | Valeur |
---|---|
d’en-tête | hidclass.h (include Hidclass.h) |