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.