IOCTL_HID_GET_COLLECTION_DESCRIPTOR IOCTL (hidclass.h)
A solicitação IOCTL_HID_GET_COLLECTION_DESCRIPTOR obtém os dados pré-preparados de uma coleção de nível superior, que o driver de classe HID extraiu do descritor de relatório do dispositivo físico durante a inicialização do dispositivo.
Para obter informações gerais sobre dispositivos HIDClass, consulte Coleções HID.
Código principal
Buffer de entrada
Parameters.DeviceIoControl.OutputBufferLength no local da pilha de E/S do IRP indica o tamanho, em bytes, do buffer de saída especificado por Irp-UserBuffer>.
Buffer de saída
Irp->UserBuffer é um ponteiro PVOID para um buffer alocado pelo solicitante que o driver de classe HID usa para retornar um comprimento variável _HIDP_PREPARSED_DATA estrutura. Esse buffer deve ser alocado do pool nãopagado.
Comprimento do buffer de saída
O tamanho, em bytes, da estrutura de dados pré-preparada é obtido usando IOCTL_HID_GET_COLLECTION_INFORMATION.
Bloco de status
O driver de classe HID define os seguintes campos de Irp-IoStatus>:
- As informações são definidas como tamanho, em bytes, dos dados pré-preparados.
- O status será definido como STATUS_SUCCESS se os dados pré-criados forem recuperados sem erro. Caso contrário, ele será definido como um código de erro NTSTATUS apropriado. Se o buffer de saída fornecido pelo solicitante não for grande o suficiente para manter os dados pré-preparados, status será definido como STATUS_INVALID_BUFFER_SIZE.
Comentários
A estrutura _HIDP_PREPARSED_DATA contém os dados pré-preparadosde uma coleção de nível superior.
typedef struct _HIDP_PREPARSED_DATA * PHIDP_PREPARSED_DATA;
Um aplicativo no modo de usuário chama HidD_GetPreparsedData para obter dados pré-preparados de uma coleção de nível superior em uma estrutura de _HIDP_PREPARSED_DATA de comprimento variável.
Um driver no modo kernel usa uma solicitação IOCTL_HID_GET_COLLECTION_DESCRIPTOR para obter um ponteiro para os dados pré-preparados de uma coleção de nível superior.
A estrutura interna de uma estrutura _HIDP_PREPARSED_DATA é reservada para uso interno do sistema.
Requisitos
Requisito | Valor |
---|---|
Cabeçalho | hidclass.h (inclua Hidclass.h) |