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

IRP_MJ_DEVICE_CONTROL

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 (in Bytes) des Eingabepuffers 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)

Weitere Informationen

HidD_GetNumInputBuffers