IOCTL_HID_GET_FEATURE IOCTL (hidclass.h)
A solicitação IOCTL_HID_GET_FEATURE retorna um relatório de recurso associado a uma coleção de nível superior.
Para obter informações gerais sobre dispositivos HIDClass, consulte Coleções HID.
Código principal
Buffer de entrada
O Parameters.DeviceIoControl.OutputBufferLength
membro especifica o tamanho, em bytes, de um buffer de saída alocado pelo solicitante. O driver de classe HID usa esse buffer para retornar um relatório de recursos.
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.
Manipulação de minidriver
Irp->UserBuffer
aponta para uma estrutura 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 recursos 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.
Manipulação de minidriver
O tamanho da estrutura HID_XFER_PACKET .
Buffer de saída
O Irp->MdlAddress
membro aponta para o buffer de saída alocado pelo solicitante que o driver de classe HID usa para retornar o relatório de recursos. O primeiro byte do buffer, que o solicitante usa para inserir uma ID de relatório ou zero, permanece inalterado. O relatório de recursos, excluindo sua ID de relatório, se as IDs de relatório forem usadas, será retornado em ((PUCHAR)Irp->MdlAddress + 1)
.
Manipulação de minidriver
((PHID_XFER_PACKET)(Irp->UserBuffer))->reportBuffer
aponta para o buffer de saída alocado pelo solicitante que o minidriver HID usa para retornar um relatório de recursos.
Comprimento do buffer de saída
O comprimento do buffer que contém o relatório.
Manipulação de minidriver
O tamanho da estrutura HID_XFER_PACKET .
Bloco de status
O driver de classe HID define os seguintes campos de Irp->IoStatus
:
- As informações são definidas como o número de bytes transferidos do dispositivo.
- O 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.
Manipulação de minidriver
Os minidrivers HID que executam a E/S para o dispositivo definem os seguintes campos de Irp->IoStatus
:
- As informações são definidas como o número de bytes transferidos do dispositivo.
- O 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 status esteja correto e não altere o conteúdo do campo Status.
Requisitos
Requisito | Valor |
---|---|
Cabeçalho | hidclass.h (inclua Hidclass.h) |