IOCTL_HID_GET_COLLECTION_DESCRIPTOR IOCTL (hidclass.h)
La richiesta di IOCTL_HID_GET_COLLECTION_DESCRIPTOR ottiene i dati pronti di una raccolta di primo livello, che il driver di classe HID estratto dal descrittore di report del dispositivo fisico durante l'inizializzazione del dispositivo.
Per informazioni generali sui dispositivi HIDClass, vedere Raccolte HID.
Codice principale
Buffer di input
Parameters.DeviceIoControl.OutputBufferLength nella posizione dello stack I/O di IRP indica le dimensioni, in byte, del buffer di output specificato da Irp-UserBuffer>.
Buffer di output
Irp->UserBuffer è un puntatore PVOID a un buffer allocato dal richiedente usato dal driver di classe HID per restituire una lunghezza variabile _HIDP_PREPARSED_DATA struttura. Questo buffer deve essere allocato da un pool non di paging.
Lunghezza del buffer di output
Le dimensioni, in byte, della struttura dei dati preparato vengono ottenute usando IOCTL_HID_GET_COLLECTION_INFORMATION.
Blocco dello stato
Il driver di classe HID imposta i campi seguenti di Irp-IoStatus>:
- Le informazioni sono impostate su dimensioni, in byte, dei dati pronti.
- Lo stato è impostato su STATUS_SUCCESS se i dati pronti sono stati recuperati senza errori. In caso contrario, viene impostato su un codice di errore NTSTATUS appropriato. Se il buffer di output fornito dal richiedente non è sufficientemente grande da contenere i dati pronti, lo stato viene impostato su STATUS_INVALID_BUFFER_SIZE.
Commenti
La struttura _HIDP_PREPARSED_DATA contiene i dati elaborati di una raccolta di primo livello.
typedef struct _HIDP_PREPARSED_DATA * PHIDP_PREPARSED_DATA;
Un'applicazione in modalità utente chiama HidD_GetPreparsedData per ottenere i dati pronti di una raccolta di primo livello in una struttura a lunghezza variabile _HIDP_PREPARSED_DATA.
Un driver in modalità kernel usa una richiesta di IOCTL_HID_GET_COLLECTION_DESCRIPTOR per ottenere un puntatore ai dati pronti di una raccolta di livello superiore.
La struttura interna di una struttura di _HIDP_PREPARSED_DATA è riservata per l'uso interno del sistema.
Requisiti
Requisito | Valore |
---|---|
Intestazione | hidclass.h (include Hidclass.h) |