Condividi tramite


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

IRP_MJ_DEVICE_CONTROL

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)

Vedi anche