IOCTL_HID_GET_INPUT_REPORT IOCTL (hidclass.h)
La solicitud IOCTL_HID_GET_INPUT_REPORT obtiene un informe de entrada de una colección de nivel superior.
Para obtener información general sobre los dispositivos HIDClass, consulte Colecciones HID.
Código principal
Búfer de entrada
El Parameters.DeviceIoControl.OutputBufferLength
miembro especifica el tamaño de un búfer de salida asignado por el solicitante en bytes. El controlador de clase HID usa este búfer para devolver un informe de entrada.
Si la colección incluye identificadores de informe, el solicitante debe establecer el primer byte del búfer de salida en un identificador de informe distinto de cero. De lo contrario, el solicitante debe establecer el primer byte del búfer de salida en cero.
Control de minidriver
Irp->UserBuffer
apunta a una estructura de HID_XFER_PACKET que usa el controlador de clase HID para introducir los miembros siguientes:
Longitud del búfer de entrada
Tamaño del búfer en bytes. El búfer debe ser lo suficientemente grande como para contener el informe de entrada más un byte adicional que especifique un identificador de informe distinto de cero. Si no se usa el identificador de informe, el valor de id. es cero.
Búfer de salida
El Irp->MdlAddress
miembro apunta al búfer de salida asignado por el solicitante que usa el controlador de clase HID para devolver el informe de entrada. El primer byte del búfer, que el solicitante usa para introducir un identificador de informe o cero, no cambia. El informe de entrada se devuelve en ((PUCHAR)Irp->MdlAddress + 1)
.
Control de minidriver
((PHID_XFER_PACKET)(Irp->UserBuffer))->reportBuffer
apunta al búfer de salida asignado por el solicitante que usa el minidriver HID para devolver el informe de entrada.
Longitud del búfer de salida
Tamaño del informe de salida.
Bloque de estado
El controlador de clase HID establece los siguientes campos de Irp->IoStatus
:
- La información se establece en cero.
- El estado se establece en STATUS_SUCCESS si la transferencia se completó sin error. De lo contrario, se establece en un código de error NTSTATUS adecuado.
Control de minidriver
Minidrivers HID que llevan a cabo la E/S en el dispositivo establecen los siguientes campos de Irp->IoStatus
:
- La información se establece en el número de bytes transferidos desde el dispositivo.
- El estado se establece en STATUS_SUCCESS si la transferencia se completó sin error. De lo contrario, se establece en un código de error NTSTATUS adecuado.
Los minidrivers HID que llaman a otros controladores con este IOCTL para llevar a cabo la E/S en su dispositivo, deben asegurarse de que el campo Información del bloque de estado sea correcto y no cambie el contenido del campo Estado .
Requisitos
Requisito | Valor |
---|---|
Header | hidclass.h (include Hidclass.h) |