Compartir a través de


IOCTL_HID_GET_FEATURE IOCTL (hidclass.h)

La solicitud IOCTL_HID_GET_FEATURE devuelve un informe de características asociado a un colección de nivel superior.

Para obtener información general sobre los dispositivos HIDClass, consulte colecciones HID.

Código principal

IRP_MJ_DEVICE_CONTROL

Búfer de entrada

El miembro Parameters.DeviceIoControl.OutputBufferLength especifica el tamaño, en bytes, de un búfer de salida asignado por el solicitante. El controlador de clase HID usa este búfer para devolver un informe de características.

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 características más un byte adicional que especifique un identificador de informe distinto de cero. Si no se usa el identificador de informe, el valor del identificador es cero.

control de minidriver

Tamaño de la estructura HID_XFER_PACKET.

Búfer de salida

El miembro Irp->MdlAddress apunta al búfer de salida asignado por el solicitante que usa el controlador de clase HID para devolver el informe de características. El primer byte del búfer, que el solicitante usa para introducir un identificador de informe o cero, no se modifica. El informe de características, excepto su identificador de informe, si se usan identificadores de informe, 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 un informe de características.

Longitud del búfer de salida

Longitud del búfer que contiene el informe.

control de minidriver

Tamaño de la estructura HID_XFER_PACKET.

Bloque de estado

El controlador de clase HID establece los siguientes campos de Irp->IoStatus:

  • de información se establece en el número de bytes transferidos desde el dispositivo.
  • 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

Minidrives HID que llevan a cabo la E/S en el dispositivo establecen los siguientes campos de Irp->IoStatus:

  • de información se establece en el número de bytes transferidos desde el dispositivo.
  • 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 minidriveres 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 de Información del bloque de estado sea correcto y no cambie el contenido del campo Estado.

Requisitos

Requisito Valor
encabezado de hidclass.h (include Hidclass.h)

Consulte también