Colecciones de nivel superior
Una colección de nivel superior es una agrupación de funcionalidad que tiene como destino un consumidor de software determinado (o tipo de consumidor) de la funcionalidad. Por ejemplo, una colección de nivel superior se puede describir como teclado, mouse, control de consumidor, sensor, pantalla, etc. En la especificación HID, estas colecciones de nivel superior también se conocen como colecciones de aplicaciones. El dispositivo HID describe el propósito de cada colección de nivel superior, lo que permite a los consumidores de la funcionalidad HID identificar las colecciones de nivel superior en las que están interesados. En Windows, la clase de configuración de dispositivos HID (HIDClass) genera un objeto de dispositivo físico único (PDO) para cada colección de nivel superior descrita por el descriptor de informe. Microsoft define una colección de nivel superior como una colección HID que no está anidada dentro de otra colección. Una colección sin redistribuir siempre es una colección de nivel superior, independientemente de su tipo HID. En concreto, una colección de nivel superior no tiene que ser una colección de aplicaciones, tal como se define en el estándar HID USB.
Un descriptor de informe puede incluir más de una colección de nivel superior. El controlador de clase HID enumera las colecciones de nivel superior de un dispositivo de entrada y crea un objeto de dispositivo físico (PDO) para cada colección de nivel superior. Las aplicaciones en modo de usuario o los controladores en modo kernel pueden acceder a una colección de nivel superior abriendo su PDO y usando las rutinas de compatibilidad de HIDClass y las ICTL del controlador de clase HID.
En la lista siguiente se describe la estructura interna y la funcionalidad de una colección de nivel superior:
- Una estructura de HIDP_CAPS resume la funcionalidad de una colección de nivel superior.
- Las colecciones de vínculos describen la organización de las colecciones anidadas contenidas en una colección de nivel superior.
- Las matrices de funcionalidad de botón y las matrices de funcionalidad de valor describen la funcionalidad de los controles admitidos por la colección de nivel superior.