IOCTL_SET_NUM_DEVICE_INPUT_BUFFERS IOCTL (hidclass.h)
A solicitação IOCTL_SET_NUM_DEVICE_INPUT_BUFFERS define o número de buffers para a fila de relatório de entrada de uma coleção de nível superior.
Cada fila de relatório de entrada é implementada como um buffer de anéis. Se uma coleção transmitir dados para o driver de classe HID mais rapidamente do que o driver pode lê-los, alguns dos dados poderão ser perdidos. Para evitar esse tipo de perda, você pode usar uma solicitação IOCTL_SET_NUM_DEVICE_INPUT_BUFFERS para ajustar o número de buffers que a fila de relatório de entrada contém. O driver de classe HID requer um mínimo de dois buffers de entrada. No Windows 2000, o número máximo de buffers de entrada compatíveis com o driver de classe HID é 200 e, no Windows XP e posterior, o número máximo de buffers de entrada compatíveis com o driver de classe HID é 512. O número padrão de buffers de entrada é 32.
Para obter informações gerais sobre dispositivos HIDClass, consulte Coleções HID.
Código principal
Buffer de entrada
Irp->AssociatedIrp.SystemBuffer aponta para um buffer de entrada do tamanho ULONG que recebe o novo número de buffers para a fila de relatório de entrada.
Parameters.DeviceIoControl.InputBufferLength no local da pilha de E/S do IRP contém o tamanho, em bytes, do buffer de entrada em Irp-AssociatedIrp.SystemBuffer>. Esse tamanho deve ser sizeof(ULONG).
Comprimento do buffer de entrada
O tamanho de um ULONG.
Buffer de saída
Nenhum.
Comprimento do buffer de saída
Nenhum.
Bloco de status
Se a solicitação for bem-sucedida, o driver de classe HID definirá o campo Status de Irp-IoStatus> como STATUS_SUCCESS; caso contrário, definirá o campo Status como um código de erro NTSTATUS apropriado.
Requisitos
Requisito | Valor |
---|---|
Cabeçalho | hidclass.h (inclua Hidclass.h) |