IOCTL_SET_NUM_DEVICE_INPUT_BUFFERS IOCTL (hidclass.h)
Die IOCTL_SET_NUM_DEVICE_INPUT_BUFFERS Anforderung legt die Anzahl der Puffer für die Eingabeberichtswarteschlange einer Auflistung der obersten Ebene fest.
Jede Eingabeberichtswarteschlange wird als Ringpuffer implementiert. Wenn eine Sammlung Daten schneller an den HID-Klassentreiber überträgt, als der Treiber sie lesen kann, gehen möglicherweise einige der Daten verloren. Um diesen Verlust zu verhindern, können Sie eine IOCTL_SET_NUM_DEVICE_INPUT_BUFFERS Anforderung verwenden, um die Anzahl der Puffer anzupassen, die die Eingabeberichtswarteschlange enthält. Der HID-Klassentreiber erfordert mindestens zwei Eingabepuffer. Unter Windows 2000 beträgt die maximale Anzahl von Eingabepuffern, die der HID-Klassentreiber unterstützt, 200, und unter Windows XP und höher ist die maximale Anzahl von Eingabepuffern, die der HID-Klassentreiber unterstützt, 512. Die Standardanzahl von Eingabepuffern ist 32.
Allgemeine Informationen zu HIDClass-Geräten finden Sie unter HID-Sammlungen.
Hauptcode
Eingabepuffer
Irp->AssociatedIrp.SystemBuffer verweist auf einen Eingabepuffer im ULONG-Format, der die neue Anzahl von Puffern für die Eingabeberichtswarteschlange empfängt.
Parameters.DeviceIoControl.InputBufferLength in der E/A-Stapelposition des IRP enthält die Größe des Eingabepuffers in Bytes bei Irp-AssociatedIrp.SystemBuffer>. Diese Größe muss sizeof(ULONG) sein.
Eingabepufferlänge
Die Größe einer ULONG.
Ausgabepuffer
Keine.
Länge des Ausgabepuffers
Keine.
Statusblock
Wenn die Anforderung erfolgreich ist, legt der HID-Klassentreiber das Feld Status von Irp-IoStatus> auf STATUS_SUCCESS fest. Andernfalls wird das Feld Status auf einen entsprechenden NTSTATUS-Fehlercode festgelegt.
Anforderungen
Anforderung | Wert |
---|---|
Header | hidclass.h (include Hidclass.h) |