IOCTL_HID_GET_COLLECTION_DESCRIPTOR IOCTL (hidclass.h)
La solicitud de IOCTL_HID_GET_COLLECTION_DESCRIPTOR obtiene los datos preparados de una colección de nivel superior, que el controlador de clase HID extrajo del descriptor de informe del dispositivo físico durante la inicialización del dispositivo.
Para obtener información general sobre los dispositivos HIDClass, consulte Colecciones HID.
Código principal
Búfer de entrada
Parameters.DeviceIoControl.OutputBufferLength en la ubicación de pila de E/S del IRP indica el tamaño, en bytes, del búfer de salida especificado por Irp-UserBuffer>.
Búfer de salida
Irp->UserBuffer es un puntero PVOID a un búfer asignado por el solicitante que usa el controlador de clase HID para devolver una longitud variable _HIDP_PREPARSED_DATA estructura. Este búfer debe asignarse desde un grupo no paginado.
Longitud del búfer de salida
El tamaño, en bytes, de la estructura de datos preparados se obtiene mediante IOCTL_HID_GET_COLLECTION_INFORMATION.
Bloque de estado
El controlador de clase HID establece los siguientes campos de Irp-IoStatus>:
- La información se establece en tamaño, en bytes, de los datos preparados.
- El estado se establece en STATUS_SUCCESS si los datos preparados se recuperaron sin errores. De lo contrario, se establece en un código de error NTSTATUS adecuado. Si el búfer de salida proporcionado por el solicitante no es lo suficientemente grande como para contener los datos preparados, el estado se establece en STATUS_INVALID_BUFFER_SIZE.
Comentarios
La estructura _HIDP_PREPARSED_DATA contiene los datos preparadosde una colección de nivel superior.
typedef struct _HIDP_PREPARSED_DATA * PHIDP_PREPARSED_DATA;
Una aplicación en modo de usuario llama a HidD_GetPreparsedData para obtener los datos preparados de una colección de nivel superior en una estructura de longitud variable _HIDP_PREPARSED_DATA.
Un controlador en modo kernel usa una solicitud de IOCTL_HID_GET_COLLECTION_DESCRIPTOR para obtener un puntero a los datos preparados de una colección de nivel superior.
La estructura interna de una estructura de _HIDP_PREPARSED_DATA está reservada para uso interno del sistema.
Requisitos
Requisito | Valor |
---|---|
Header | hidclass.h (include Hidclass.h) |