IOCTL_HID_GET_FEATURE IOCTL (hidclass.h)
La richiesta di IOCTL_HID_GET_FEATURE restituisce un report di funzionalità associato a una raccolta di primo livello.
Per informazioni generali sui dispositivi HIDClass, vedere raccolte HID.
Codice principale
Buffer di input
Il membro Parameters.DeviceIoControl.OutputBufferLength
specifica le dimensioni, in byte, di un buffer di output allocato dal richiedente. Il driver di 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.
minidriver che gestisce
Irp->UserBuffer
punta a una struttura HID_XFER_PACKET usata dal driver di classe HID per immettere i membri seguenti:
Lunghezza del buffer di input
Dimensione del buffer in byte. Il buffer deve essere sufficientemente grande da 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.
minidriver che gestisce
Dimensione della struttura HID_XFER_PACKET.
Buffer di output
Il membro Irp->MdlAddress
punta al buffer di output allocato dal richiedente usato dal driver di classe HID per restituire il report delle funzionalità. Il primo byte del buffer, usato dal richiedente per immettere un ID report o zero, rimane invariato. Il report delle funzionalità, escluso il relativo ID report, se vengono usati ID report, viene restituito in ((PUCHAR)Irp->MdlAddress + 1)
.
minidriver che gestisce
((PHID_XFER_PACKET)(Irp->UserBuffer))->reportBuffer
punta al buffer di output allocato dal richiedente usato dal minidriver HID per restituire un report delle funzionalità.
Lunghezza del buffer di output
Lunghezza del buffer che contiene il report.
minidriver che gestisce
Dimensione della struttura HID_XFER_PACKET.
Blocco di stato
Il driver di classe HID imposta i campi seguenti di Irp->IoStatus
:
- informazioni è impostato sul numero di byte trasferiti dal dispositivo.
- stato è impostato su STATUS_SUCCESS se il trasferimento è stato completato senza errori. In caso contrario, è impostato su un codice di errore NTSTATUS appropriato.
minidriver che gestisce
I minidriver HID che eseguono l'I/O nel dispositivo impostano i campi seguenti di Irp->IoStatus
:
- informazioni è impostato sul numero di byte trasferiti dal dispositivo.
- stato è impostato su STATUS_SUCCESS se il trasferimento è stato completato senza errori. 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.
Fabbisogno
Requisito | Valore |
---|---|
intestazione | hidclass.h (include Hidclass.h) |