IOCTL_SET_NUM_DEVICE_INPUT_BUFFERS IOCTL (hidclass.h)

IOCTL_SET_NUM_DEVICE_INPUT_BUFFERS要求會設定 最上層集合之輸入報表佇列的緩衝區數目。

每個輸入報表佇列都會實作為通道緩衝區。 如果集合將數據傳輸至 HID 類別驅動程式的速度比驅動程式快,可能會遺失部分數據。 若要避免這種遺失類型,您可以使用IOCTL_SET_NUM_DEVICE_INPUT_BUFFERS要求來調整輸入報表佇列包含的緩衝區數目。 HID 類別驅動程式至少需要兩個輸入緩衝區。 在 Windows 2000 上,HID 類別驅動程式支援的輸入緩衝區數目上限為 200,在 Windows XP 和更新版本上,HID 類別驅動程式支援的輸入緩衝區數目上限為 512。 輸入緩衝區的預設數目為 32。

如需 HIDClass 裝置的一般資訊,請參閱 HID 集合

主要程序代碼

IRP_MJ_DEVICE_CONTROL

輸入緩衝區

Irp->AssociatedIrp.SystemBuffer 指向 ULONG 大小的輸入緩衝區,以接收輸入報表佇列的新緩衝區數目。

IRP I/O 堆棧位置中的 Parameters.DeviceIoControl.InputBufferLength 包含 Irp-AssociatedIrp.SystemBuffer> 輸入緩衝區的大小,以位元組為單位。 此大小必須是ULONG) (sizeof

輸入緩衝區長度

ULONG 的大小。

輸出緩衝區

無。

輸出緩衝區長度

無。

狀態區塊

如果要求成功,HID 類別驅動程式會將 Irp-IoStatus>Status 欄位設定為 STATUS_SUCCESS;否則會將 [狀態] 字段設定為適當的 NTSTATUS 錯誤碼。

規格需求

需求
標頭 hidclass.h (包含 Hidclass.h)

另請參閱

HidD_GetNumInputBuffers