Condividi tramite


Recupero dei dati preparati

Questa sezione descrive come le applicazioni in modalità utente e i driver in modalità kernel ottengono i dati preparati di una raccolta HID, ovvero una struttura opaca che descrive i report HID di una raccolta.

applicazione User-Mode

Un'applicazione in modalità utente deve ottenere i dati preparati di una raccolta prima di chiamare una delle routine di supporto HIDClass che richiedono i dati preparati. Un'applicazione deve conservare l'accesso ai dati preparati di una raccolta purché abbia un file aperto nel dispositivo.

Dopo aver aperto un file in una raccolta HID, un'applicazione chiama HidD_GetPreparsedData per restituire i dati preparati di una raccolta in un buffer allocato di routine.

Le applicazioni devono chiamare HidD_FreePreparsedData quando l'applicazione non richiede più l'accesso a una raccolta.

Kernel-Mode driver

Dopo che un driver in modalità kernel apre una raccolta HID, il driver ottiene i dati preparati di una raccolta nel modo seguente:

  • Ottiene la lunghezza dei dati preparati della raccolta

  • Ottiene i dati preparati della raccolta

Per determinare la lunghezza dei dati preparati, il driver usa una richiesta di IOCTL_HID_GET_COLLECTION_INFORMATION . Questa richiesta restituisce una struttura HID_COLLECTION_INFORMATION . Il membro DescriptorSize di questa struttura specifica le dimensioni, in byte, dei dati preparati di una raccolta. Il driver deve allocare un buffer da un pool non impaginato di almeno questa dimensione per contenere i dati preparati.

Dopo aver allocato il buffer per i dati preparati, il driver usa una richiesta di IOCTL_HID_GET_COLLECTION_DESCRIPTOR per ottenere i dati preparati.

Dopo aver ottenuto i dati preparati, il driver può usarlo con le routine di supporto **HidP_**XXX HID per ottenere informazioni sulle funzionalità della raccolta HID e per estrarre i dati di controllo dai report HID.