IOCTL_SET_NUM_DEVICE_INPUT_BUFFERS IOCTL (hidclass.h)
IOCTL_SET_NUM_DEVICE_INPUT_BUFFERS要求は、 最上位コレクションの入力レポート キューのバッファーの数を設定します。
各入力レポート キューは、リング バッファーとして実装されます。 コレクションは、ドライバーが読み取ることができるよりも高速に HID クラス ドライバーにデータを送信する場合、データの一部が失われる可能性があります。 この種の損失を防ぐために、IOCTL_SET_NUM_DEVICE_INPUT_BUFFERS要求を使用して、入力レポート キューに含まれるバッファーの数を調整できます。 HID クラス ドライバーには、少なくとも 2 つの入力バッファーが必要です。 Windows 2000 では、HID クラス ドライバーがサポートする入力バッファーの最大数は 200 で、Windows XP 以降では、HID クラス ドライバーがサポートする入力バッファーの最大数は 512 です。 入力バッファーの既定の数は 32 です。
HIDClass デバイスの一般的な情報については、「 HID コレクション」を参照してください。
メジャー コード
[入力バッファー]
Irp->AssociatedIrp.SystemBuffer は 、入力レポート キューの新しい数のバッファーを受け取る ULONG サイズの入力バッファーを指します。
IRP の I/O スタック位置の Parameters.DeviceIoControl.InputBufferLength には、Irp-AssociatedIrp.SystemBuffer> の入力バッファーのサイズ (バイト単位) が含まれます。 このサイズは sizeof(ULONG) である必要があります。
入力バッファーの長さ
ULONG のサイズ。
出力バッファー
[なし] :
出力バッファーの長さ
[なし] :
ステータス ブロック
要求が成功した場合、HID クラス ドライバーは Irp-IoStatus> の Status フィールドをSTATUS_SUCCESSに設定します。それ以外の場合は、Status フィールドを適切な NTSTATUS エラー コードに設定します。
要件
要件 | 値 |
---|---|
Header | hidclass.h (Hidclass.h を含む) |