Condividi tramite


Recupero dei dati pronti

Questo articolo descrive in che modo 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 in modalità utente

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 pronti. Un'applicazione deve mantenere l'accesso ai dati preparati di una raccolta purché disponga di un file aperto nel dispositivo.

Dopo l'apertura di un file in una raccolta HID, un'applicazione chiama HidD_GetPreparsedData per restituire i dati pronti 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.

Driver in modalità kernel

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 pronti, 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 di pagine di almeno queste dimensioni per contenere i dati pronti.

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

Dopo aver ottenuto i dati pronti, 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.