Partilhar via


Obtendo dados pré-preparados

Este artigo descreve como aplicativos de modo de usuário e drivers de modo kernel obtêm os dados pré-preparados de uma coleção HID, que é uma estrutura opaca que descreve os relatórios HID de uma coleção.

Aplicativo no modo de usuário

Um aplicativo no modo de usuário deve obter os dados pré-preparados de uma coleção antes de chamar qualquer uma das rotinas de suporte HIDClass que exigem os dados pré-preparados. Um aplicativo deve manter o acesso aos dados pré-preparados de uma coleção, desde que tenha um arquivo aberto no dispositivo.

Depois de abrir um arquivo em uma coleção HID, um aplicativo chama HidD_GetPreparsedData para retornar os dados pré-preparados de uma coleção em um buffer alocado por rotina.

Os aplicativos devem chamar HidD_FreePreparsedData quando o aplicativo não exigir mais acesso a uma coleção.

Driver do modo kernel

Depois que um driver de modo kernel abre uma coleção HID, o driver obtém os dados pré-preparados de uma coleção da seguinte maneira:

  • Obtém o comprimento dos dados pré-preparados da coleção

  • Obtém os dados pré-preparados da coleção

Para determinar o comprimento dos dados pré-preparados, o driver usa uma solicitação IOCTL_HID_GET_COLLECTION_INFORMATION. Essa solicitação retorna uma estrutura HID_COLLECTION_INFORMATION . O membro DescriptorSize dessa estrutura especifica o tamanho, em bytes, dos dados pré-preparados de uma coleção. O driver deve alocar um buffer do pool não paginado de pelo menos esse tamanho para manter os dados pré-preparados.

Depois de alocar o buffer para os dados pré-preparados, o driver usa uma solicitação IOCTL_HID_GET_COLLECTION_DESCRIPTOR para obter os dados pré-preparados.

Depois de obter os dados pré-preparados, o driver pode usá-los com as rotinas de suporte **HidP_**Xxx HID para obter informações sobre os recursos da coleção HID e extrair dados de controle de relatórios HID.