Partilhar via


Obtenção de dados pré-analisados

Este artigo descreve como aplicações em modo utilizador e controladores em modo núcleo obtêm os dados pré-analisados de uma coleção HID, que é uma estrutura opaca que descreve os relatórios HID de uma coleção.

User-Mode Aplicação

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

Depois de abrir um ficheiro numa coleção HID, uma aplicação chama HidD_GetPreparsedData para retornar os dados pré-analisados de uma coleção num buffer alocado por rotina.

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

Kernel-Mode Motorista

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

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

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

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

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

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