Compartilhar via


IOCTL_HID_GET_INPUT_REPORT IOCTL (hidclass.h)

A solicitação IOCTL_HID_GET_INPUT_REPORT obtém um relatório de entrada de uma coleção de de nível superior.

Para obter informações gerais sobre dispositivos HIDClass, consulte coleções HID.

Código principal

IRP_MJ_DEVICE_CONTROL

Buffer de entrada

O membro Parameters.DeviceIoControl.OutputBufferLength especifica o tamanho de um buffer de saída alocado pelo solicitante em bytes. O driver de classe HID usa esse buffer para retornar um relatório de entrada.

Se a coleção incluir IDs de relatório, o solicitante deverá definir o primeiro byte do buffer de saída como uma ID de relatório diferente de zero. Caso contrário, o solicitante deve definir o primeiro byte do buffer de saída como zero.

de manipulação do Minidriver

Irp->UserBuffer aponta para uma estrutura de HID_XFER_PACKET que o driver de classe HID usa para inserir os seguintes membros:

Comprimento do buffer de entrada

O tamanho do buffer em bytes. O buffer deve ser grande o suficiente para manter o relatório de entrada mais um byte adicional que especifica uma ID de relatório diferente de zero. Se a ID do relatório não for usada, o valor da ID será zero.

Buffer de saída

O membro Irp->MdlAddress aponta para o buffer de saída alocado pelo solicitante que o driver de classe HID usa para retornar o relatório de entrada. O primeiro byte do buffer, que o solicitante usa para inserir uma ID de relatório ou zero, permanece inalterado. O relatório de entrada é retornado em ((PUCHAR)Irp->MdlAddress + 1).

de manipulação do Minidriver

((PHID_XFER_PACKET)(Irp->UserBuffer))->reportBuffer aponta para o buffer de saída alocado pelo solicitante que o minidriver HID usa para retornar o relatório de entrada.

Comprimento do buffer de saída

O tamanho do relatório de saída.

Bloco de status

O driver de classe HID define os seguintes campos de Irp->IoStatus:

  • de Informações está definido como zero.
  • Status será definido como STATUS_SUCCESS se a transferência for concluída sem erros. Caso contrário, ele será definido como um código de erro NTSTATUS apropriado.

de manipulação do Minidriver

Os minidrivers HID que executam a E/S para o dispositivo definem os seguintes campos de Irp->IoStatus:

  • de Informações é definido como o número de bytes transferidos do dispositivo.
  • Status será definido como STATUS_SUCCESS se a transferência for concluída sem erros. Caso contrário, ele será definido como um código de erro NTSTATUS apropriado.

Os minidrivers HID que chamam outros drivers com esse IOCTL para realizar a E/S em seu dispositivo devem garantir que o campo Informações do bloco de status esteja correto e não altere o conteúdo do campo Status.

Requisitos

Requisito Valor
cabeçalho hidclass.h (inclua Hidclass.h)

Consulte também