Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Comprender la distinción entre las clases de configuración de dispositivos y las clases de interfaz de dispositivo es fundamental para el desarrollo correcto de controladores de Windows y la administración de dispositivos. Aunque estas clases pueden parecer similares, sirven fundamentalmente diferentes propósitos en el ecosistema de dispositivos Windows. Las clases de instalación rigen cómo el sistema operativo instala y configura los dispositivos. Las clases de interfaz permiten la comunicación y funcionalidad en tiempo de ejecución entre controladores, aplicaciones y dispositivos. Comprender esta distinción le ayuda a elegir el tipo de clase correcto para la instalación de dispositivos, implementar notificaciones de dispositivo adecuadas y evitar problemas comunes de desarrollo.
Un dispositivo suele pertenecer a una clase de configuración y expone varias interfaces de dispositivo en diferentes clases de interfaz al mismo tiempo. Sin embargo, los dos tipos de clases tienen fines diferentes y no son intercambiables.
Comparación
En la tabla siguiente se resumen las diferencias clave y las relaciones entre las clases de instalación y las clases de interfaz:
| Aspecto | Clases de instalación | Clases de interfaz |
|---|---|---|
| Propósito principal | Agrupación de dispositivos con una instalación y configuración similares | Agrupación de interfaces de dispositivo que proporcionan funcionalidad y comunicación similares |
| Uso | Usado por Windows durante la instalación del dispositivo | Usado por controladores y aplicaciones para la interacción del dispositivo |
| Definiciones de GUID | Normalmente se define en Devguid.h | Definido en archivos de encabezado específicos del dispositivo (por ejemplo, Ntddmou.h, Ntddpar.h) |
| Criterios de agrupación | Dispositivos instalados y configurados de forma similar | Por lo general, las interfaces de dispositivo que implementan un contrato de E/S determinado |
| Notificación | No se usa para las notificaciones de llegada o eliminación de dispositivos | Se usa para registrar las notificaciones de llegada y eliminación de la interfaz de dispositivo |
| Examples | Sensores, firmware, Bluetooth | Captura de audio, representación de audio, sensor de luz ambiente |
| Relación | Un dispositivo pertenece a una clase de configuración | Un dispositivo puede exponer cero o más interfaces de dispositivo en diferentes clases de interfaz |
| Vida | Relevante durante el proceso de instalación | Relevante durante la operación del dispositivo |
Es importante distinguir entre los dos tipos de clases de dispositivo: clases de interfaz de dispositivo y clases de configuración de dispositivos. Los dos pueden confundirse fácilmente. En el código en modo de usuario, ambas clases usan el mismo conjunto de funciones de instalación de dispositivos. También usan el mismo conjunto de estructuras de datos (conjuntos de información del dispositivo).
Misma clase de instalación, diferentes clases de interfaz:
- Dispositivos: dos dispositivos de sensor diferentes
- Clase setup: ambos dispositivos están en la clase Sensors .
- Clases de interfaz: un sensor expone una interfaz de dispositivo de sensor de luz ambiental y la otra expone una interfaz de dispositivo de acelerómetro.
Considere un dispositivo de mouse USB y un dispositivo de teclado USB. Ambos usan la misma clase de interfaz (dispositivo de interfaz humana). Pero pertenecen a diferentes clases de configuración, mouse y teclado, respectivamente.
Misma clase de interfaz, diferentes clases de configuración:
- Dispositivos: un mouse USB y un teclado USB
- Clase de interfaz: ambos dispositivos usan la misma clase de interfaz (dispositivo de interfaz humana) para comunicarse con el sistema.
- Clases de instalación: el dispositivo del mouse pertenece a la clase de configuración mouse , mientras que el dispositivo de teclado pertenece a la clase de configuración Teclado .
Clases de configuración de dispositivos
Las clases de configuración de dispositivos son categorías predefinidas que se usan únicamente para la instalación y configuración de dispositivos en Windows. Ayudan al sistema operativo a comprender cómo administrar el dispositivo durante el proceso de instalación. Las clases de instalación proporcionan un mecanismo para agrupar dispositivos que están instalados y configurados de la misma manera. Para obtener más información sobre las clases de instalación, consulte Clases de instalación de dispositivos definidas por el sistema disponibles para los proveedores.
Las clases de configuración de dispositivos Windows se definen en el archivo del sistema Devguid.h. Este archivo define una serie de GUID para las clases de instalación. Sin embargo, las clases de configuración del dispositivo representadas en Devguid.h no deben confundirse con las clases de interfaz de dispositivo. El archivo Devguid.h solo contiene GUID para las clases de instalación.
Clases de interfaz de dispositivo
Las clases de interfaz de dispositivo proporcionan un mecanismo para agrupar interfaces de dispositivo según las características o funcionalidades compartidas. Los controladores y las aplicaciones de usuario pueden registrarse para recibir notificaciones sobre las interfaces de dispositivo en una clase de interfaz determinada. Esto significa que reciben notificaciones cuando cualquier interfaz de dispositivo que pertenezca a esa clase está habilitada (llega) o está deshabilitada (quitada). No necesitan realizar un seguimiento de dispositivos individuales. Las clases de interfaz de dispositivo agrupan interfaces de dispositivo expuestas por dispositivos. Se registra para recibir notificaciones de llegada y eliminación de interfaces de dispositivo.
Las definiciones de clases de interfaz no se proporcionan en un solo archivo. Una clase de interfaz de dispositivo siempre se define en un archivo de encabezado que pertenece exclusivamente a una clase determinada de dispositivos. Por ejemplo, Ntddmou.h contiene la definición de GUID_DEVINTERFACE_MOUSE, el GUID que representa la clase de interfaz del mouse. Ntddpar.h define el GUID de clase de interfaz para dispositivos paralelos. Ntddpcm.h define el GUID de clase de interfaz estándar para dispositivos PCMCIA. Ntddstor.h define el GUID de clase de interfaz para dispositivos de almacenamiento.
Para registrarse para las notificaciones de la interfaz de dispositivo, use los GUID que se encuentran en los archivos de encabezado específicos de la clase de interfaz de dispositivo. Estos GUID le permiten recibir notificaciones cuando llega una instancia de interfaz de dispositivo. Si un controlador se registra para recibir notificaciones mediante un GUID de clase de instalación en lugar de un GUID de clase de interfaz, no se notifica cuando llega una interfaz.
Al definir una nueva clase de interfaz, no use un único GUID para identificar una clase de instalación y una clase de interfaz.