IOCTL_HID_SET_FEATURE IOCTL (hidclass.h)
A solicitação IOCTL_HID_SET_FEATURE envia um relatório de recursos para uma coleção de de nível superior.
Para obter informações gerais sobre dispositivos HIDClass, consulte coleções HID.
Código principal
Buffer de entrada
O membro Parameters.DeviceIoControl.InputBufferLength
é definido como o tamanho, em bytes, de um buffer de entrada alocado pelo solicitante que contém um relatório de recursos de classe HID.
O tamanho do buffer de entrada 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.
O membro Irp->AssociatedIrp.SystemBuffer
aponta para o buffer de entrada que contém um relatório de recursos. Se a coleção incluir IDs de relatório, o solicitante deverá definir o primeiro byte do buffer como uma ID de relatório diferente de zero; caso contrário, o solicitante deve definir o primeiro byte como zero. O relatório de recursos está localizado em ((PUCHAR)ReportBuffer + 1)
.
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 de entrada em bytes. O buffer deve ser grande o suficiente para manter o relatório de saída 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.
de manipulação do Minidriver
O tamanho de uma estrutura HID_XFER_PACKET.
Buffer de saída
Nenhum.
Comprimento do buffer de saída
Nenhum.
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 para o 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 devem garantir que o campo informações de do bloco de status esteja correto e não altere o conteúdo do campo status do.
Requisitos
Requisito | Valor |
---|---|
cabeçalho | hidclass.h (inclua Hidclass.h) |