Condividi tramite


IOCTL_HID_GET_INPUT_REPORT IOCTL (hidclass.h)

La richiesta di IOCTL_HID_GET_INPUT_REPORT ottiene un report di input da 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 di un buffer di output allocato dal richiedente in byte. Il driver di classe HID usa questo buffer per restituire un report di input.

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 di minidriver

Irp->UserBuffer punta a una struttura HID_XFER_PACKET utilizzata dal driver di classe HID per immettere i membri seguenti:

Lunghezza del buffer di input

Dimensioni del buffer in byte. Il buffer deve essere sufficientemente grande da contenere il report di input più un byte aggiuntivo che specifica un ID report diverso da zero. Se l'ID del report non viene usato, il valore ID è zero.

Buffer di output

Il Irp->MdlAddress membro punta al buffer di output allocato dal richiedente usato dal driver di classe HID per restituire il report di input. Il primo byte del buffer, usato dal richiedente per immettere un ID report o zero, rimane invariato. Il report di input viene restituito in ((PUCHAR)Irp->MdlAddress + 1).

Gestione di minidriver

((PHID_XFER_PACKET)(Irp->UserBuffer))->reportBuffer punta al buffer di output allocato dal richiedente usato dal minidriver HID per restituire il report di input.

Lunghezza del buffer di output

Dimensioni del report di output.

Blocco dello stato

Il driver di classe HID imposta i campi seguenti di Irp->IoStatus:

  • Le informazioni sono impostate su zero.
  • Lo stato è impostato su STATUS_SUCCESS se il trasferimento è stato completato senza errori. In caso contrario, viene impostato su un codice di errore NTSTATUS appropriato.

Gestione di 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 errori. In caso contrario, viene impostato su un codice di errore NTSTATUS appropriato.

I minidriver HID che chiamano altri driver con questo IOCTL per eseguire l'I/O al 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