IOCTL_HID_GET_FEATURE IOCTL (hidclass.h)
La richiesta di IOCTL_HID_GET_FEATURE restituisce un report delle funzionalità associato a una raccolta di livello superiore.
Per informazioni generali sui dispositivi HIDClass, vedere Raccolte HID.
Codice principale
Buffer di input
Il Parameters.DeviceIoControl.OutputBufferLength
membro specifica le dimensioni, in byte, di un buffer di output allocato dal richiedente. Il driver della classe HID usa questo buffer per restituire un report delle funzionalità.
Se la raccolta include ID report, il richiedente deve impostare il primo byte del buffer di output su un ID report diverso da zero. In caso contrario, il richiedente deve impostare il primo byte del buffer di output su zero.
Gestione del minidriver
Irp->UserBuffer
punta a una struttura HID_XFER_PACKET utilizzata dal driver di classe HID per inserire i membri seguenti:
Lunghezza del buffer di input
Dimensioni del buffer in byte. Il buffer deve essere abbastanza grande per contenere il report delle funzionalità più un byte aggiuntivo che specifica un ID report diverso da zero. Se l'ID del report non viene usato, il valore ID è zero.
Gestione del minidriver
Dimensione della struttura HID_XFER_PACKET .
Buffer di output
Il Irp->MdlAddress
membro punta al buffer di output allocato del richiedente usato dal driver di classe HID per restituire il report delle funzionalità. Il primo byte del buffer, che il richiedente usa per immettere un ID report o zero, è invariato. Il report delle funzionalità, escluso il relativo ID report, se vengono usati ID report, viene restituito in ((PUCHAR)Irp->MdlAddress + 1)
.
Gestione del minidriver
((PHID_XFER_PACKET)(Irp->UserBuffer))->reportBuffer
punta al buffer di output allocato dal richiedente usato dal minidriver HID per restituire un report di funzionalità.
Lunghezza del buffer di output
Lunghezza del buffer contenente il report.
Gestione del minidriver
Dimensione della struttura HID_XFER_PACKET .
Blocco dello stato
Il driver di classe HID imposta i campi seguenti di Irp->IoStatus
:
- Le informazioni vengono impostate sul numero di byte trasferiti dal dispositivo.
- Lo stato è impostato su STATUS_SUCCESS se il trasferimento è stato completato senza errore. In caso contrario, è impostato su un codice di errore NTSTATUS appropriato.
Gestione del minidriver
I minidriver HID che eseguono l'I/O al dispositivo impostano i campi seguenti di Irp->IoStatus
:
- Le informazioni vengono impostate sul numero di byte trasferiti dal dispositivo.
- Lo stato è impostato su STATUS_SUCCESS se il trasferimento è stato completato senza errore. In caso contrario, è impostato su un codice di errore NTSTATUS appropriato.
I minidriver HID che chiamano altri driver con questo IOCTL per eseguire l'I/O nel dispositivo, devono assicurarsi che il campo Informazioni del blocco di stato sia corretto e non modificare il contenuto del campo Stato .
Requisiti
Requisito | Valore |
---|---|
Intestazione | hidclass.h (include Hidclass.h) |