En informática , el Modelo de Controlador de Windows ( WDM ) , también conocido en su momento como Modelo de Controlador Win32 , es un marco para controladores de dispositivos que se introdujo con Windows 98 y Windows 2000 para reemplazar a VxD , que se utilizaba en versiones anteriores de Windows como Windows 95 y Windows 3.1 , así como al Modelo de Controlador de Windows NT .
Descripción general
Los controladores WDM se organizan en capas y se comunican entre sí mediante paquetes de solicitud de E/S (IRP). El modelo de controlador de Microsoft Windows unificó los modelos de controladores para las líneas de productos Windows 9x y Windows NT al estandarizar los requisitos y reducir la cantidad de código que se debía escribir. Los controladores WDM no se ejecutarán en sistemas operativos anteriores a Windows 98 o Windows 2000, como Windows 95 (antes de la actualización OSR2 que carga el modelo WDM), Windows NT 4.0 y Windows 3.1. Al cumplir con WDM, los controladores pueden ser compatibles binariamente y de código fuente en Windows 98, Windows 98 Segunda Edición, Windows Me , Windows 2000, Windows XP y Windows Server 2003 en equipos basados en x86 . Los controladores WDM están diseñados para ser compatibles con versiones posteriores, de modo que un controlador WDM pueda ejecutarse en una versión de Windows más reciente que aquella para la que se escribió inicialmente , pero esto significaría que el controlador no podría aprovechar las nuevas características introducidas con la nueva versión. En general, WDM no es compatible con versiones anteriores; es decir, no se garantiza que un controlador WDM funcione en versiones anteriores de Windows. Por ejemplo, Windows XP puede usar un controlador diseñado para Windows 2000 , pero no aprovechará las nuevas funciones de WDM introducidas en Windows XP. Sin embargo, un controlador diseñado para Windows XP puede o no cargarse en Windows 2000.
WDM se anunció en WinHEC 1996, inicialmente como el modelo de controlador principal de Windows NT 5.0 . [ 1 ] WDM existe en la capa intermedia de los controladores en modo kernel de Windows 2000 y se introdujo para aumentar la funcionalidad y facilitar la escritura de controladores para Windows. Aunque WDM se diseñó principalmente para ser compatible a nivel binario y de código fuente entre Windows 98 y Windows 2000, esto no siempre es deseable, por lo que se pueden desarrollar controladores específicos para cada sistema operativo.
Controladores de modo kernel del dispositivo
Con el Modelo de Controladores de Windows (WDM) para dispositivos, Microsoft implementa un enfoque para los controladores en modo kernel que es exclusivo de los sistemas operativos Windows . WDM implementa una arquitectura en capas para los controladores de dispositivos , y cada dispositivo de una computadora es atendido por una pila de controladores. Sin embargo, cada controlador en esa pila puede aislar características independientes del hardware de los controladores superiores e inferiores. Por lo tanto, los controladores en la pila no necesitan interactuar directamente entre sí. WDM define la arquitectura y los procedimientos de dispositivo para una variedad de dispositivos, como la pantalla y la tarjeta de red , conocidos como Especificación de Interfaz de Controlador de Red (NDIS). En la arquitectura NDIS, los controladores de red en capas incluyen controladores de nivel inferior que administran el hardware y controladores de nivel superior que implementan el transporte de datos de red, como el Protocolo de Control de Transmisión (TCP). [ 2 ]
Si bien WDM define tres tipos de controladores de dispositivos, no todas las pilas de controladores para un dispositivo dado contienen todos los tipos de controladores de dispositivos. Los tres tipos de controladores de dispositivos WDM son: [ 2 ]
Controlador de bus : Para cada bus en la placa base hay un controlador de bus, cuya principal responsabilidad es identificar todos los dispositivos conectados a ese bus y responder a los eventos plug and play. Microsoft proporcionará controladores de bus como parte del sistema operativo, [ 2 ] tales como PCI , PnPISA , SCSI , USB y FireWire .
Controlador de funciones : este es el controlador principal de un dispositivo y proporciona la interfaz operativa del mismo al gestionar las operaciones de lectura y escritura. Los controladores de funciones son desarrollados por los fabricantes de dispositivos y, para su interacción con el hardware, dependen de la presencia de un controlador de bus específico en el sistema operativo Windows. [ 2 ]
Controlador de filtro : Este controlador es opcional y puede modificar el comportamiento de un dispositivo, como las solicitudes de entrada y salida. Estos controladores pueden implementarse como controladores de filtro de nivel inferior y de nivel superior. [ 2 ]
Pila de controladores orientada a objetos
Los controladores de funciones y los controladores de bus a menudo se implementan como pares de controlador/minicontrolador, que en la práctica son una clase o miniclase, o un puerto o minipuerto. [ 3 ]
Los controladores de bus para dispositivos conectados a un bus se implementan como controladores de clase y son independientes del hardware. Admiten las operaciones de un tipo específico de dispositivo. Los sistemas operativos Windows incluyen varios controladores de clase, como el controlador kbdclass.sys para teclados. Por otro lado, los controladores de miniclase son proporcionados por el fabricante del dispositivo y solo admiten operaciones específicas para un dispositivo en particular de una clase determinada. [ 3 ]
Los controladores de puerto admiten operaciones generales de entrada/salida (E/S) para una interfaz de hardware periférico. La funcionalidad principal de los controladores de puerto viene determinada por el sistema operativo, y los sistemas operativos Windows integran diversos controladores de puerto. Por ejemplo, el controlador de puerto i8042prt.sys para el microcontrolador 8042 conecta los teclados PS/2 al bus periférico de la placa base. Los controladores miniport, al igual que los controladores miniclass, son proporcionados por los fabricantes de hardware y solo admiten operaciones específicas del dispositivo de hardware periférico conectado a un puerto de la placa base. [ 4 ] [ 5 ]
Cada controlador que procesa una solicitud de E/S para un dispositivo tiene un objeto correspondiente, que se carga en la memoria principal . El sistema operativo Windows crea un objeto de dispositivo a partir de la clase de dispositivo asociada. Los objetos de dispositivo contienen estructuras de tipo DEVICE_OBJECT, que almacenan punteros a su controlador. En tiempo de ejecución, estos punteros se utilizan para localizar la rutina de despacho y las funciones miembro de un controlador. En la pila de controladores WDM, el objeto de dispositivo del controlador de filtro, conocido como filtro superior, recibirá un paquete de solicitud de E/S (IRP) para un dispositivo del administrador de E/S. Si el controlador de filtro superior no puede atender la solicitud, localizará el objeto del controlador un nivel más abajo en la pila de controladores. El IRP se pasa a través de la pila de controladores mediante la llamada a la función IoCallDriver() y es procesado por el objeto de dispositivo del controlador de función, también conocido como objeto de dispositivo funcional. El objeto de dispositivo del controlador de función, a su vez, puede pasar el IRP al filtro inferior, otro objeto de dispositivo de filtro. Luego, el IRP puede pasarse al controlador de bus, que opera como el objeto de dispositivo físico. El objeto controlador del bus se encuentra en la parte inferior de la pila de controladores e interactúa con la capa de abstracción de hardware , que forma parte del núcleo del sistema operativo Windows y permite que los sistemas operativos Windows se ejecuten en una variedad de procesadores , diferentes arquitecturas de unidades de administración de memoria y una variedad de sistemas informáticos con diferentes arquitecturas de bus de E/S. [ 6 ] La ejecución de un IRP finaliza cuando cualquiera de los objetos controladores en la pila devuelve la solicitud al administrador de E/S, con el resultado y un indicador de estado. [ 7 ]
Controladores de dispositivos para diferentes sistemas operativos Windows
El marco WDM fue desarrollado por Microsoft para simplificar la comunicación entre el sistema operativo y los controladores dentro del núcleo. En los sistemas operativos Windows, los controladores WDM se implementan como bibliotecas de vínculos dinámicos (.DLL) o archivos .SYS con formato ejecutable portátil ( PXE). Los controladores compatibles con WDM deben seguir reglas de diseño, inicialización, plug-and-play, administración de energía y asignación de memoria. En la práctica, los programadores de controladores WDM reutilizan grandes fragmentos de código al crear nuevos controladores orientados a objetos . Esto significa que los controladores en la pila WDM pueden contener funcionalidad residual que no está documentada en las especificaciones. [ 7 ] Los controladores que han superado la prueba de calidad de Microsoft están firmados digitalmente por Microsoft. Las pruebas de compatibilidad de hardware de Microsoft y el kit de desarrollo de controladores incluyen pruebas de fiabilidad y estrés. [ 8 ]
Un controlador de dispositivo que no está diseñado para un componente de hardware específico puede permitir que otro dispositivo funcione. Esto se debe a que la funcionalidad básica de una clase de dispositivo de hardware es similar. La funcionalidad de la clase de tarjeta de video, por ejemplo, permite que el controlador Adaptador de pantalla básico de Microsoft funcione con una amplia variedad de tarjetas de video. Sin embargo, instalar el controlador incorrecto para un dispositivo significa que no se podrá utilizar toda la funcionalidad del dispositivo y puede resultar en un rendimiento deficiente y la desestabilización del sistema operativo Windows. Los fabricantes de dispositivos de hardware pueden lanzar controladores de dispositivo actualizados para sistemas operativos Windows específicos, para mejorar el rendimiento, agregar funcionalidad o corregir errores . Si un dispositivo no funciona como se espera, se deben descargar e instalar los controladores de dispositivo más recientes del sitio web del fabricante. [ 9 ]
Los controladores de dispositivos están diseñados para versiones específicas del sistema operativo Windows, y los controladores de dispositivos para una versión anterior de Windows pueden no funcionar correctamente o no funcionar en absoluto con otras versiones. Dado que muchos controladores de dispositivos se ejecutan en modo kernel, la instalación de controladores para una versión anterior del sistema operativo puede desestabilizar Windows. Por lo tanto, migrar un equipo a una versión superior de Windows requiere la instalación de nuevos controladores de dispositivos para todos los componentes de hardware. Encontrar controladores de dispositivos actualizados e instalarlos para Windows 10 ha introducido complicaciones en el proceso de migración. [ 9 ]
Los problemas comunes de compatibilidad de controladores de dispositivos incluyen: se requiere un controlador de dispositivo de 32 bits para un sistema operativo Windows de 32 bits, y un controlador de dispositivo de 64 bits para un sistema operativo Windows de 64 bits. Los controladores de dispositivo de 64 bits deben estar firmados por Microsoft, ya que se ejecutan en modo kernel y tienen acceso sin restricciones al hardware del equipo. Para sistemas operativos anteriores a Windows 10, Microsoft permitía a los proveedores firmar sus propios controladores de 64 bits, siempre que hubieran realizado pruebas de compatibilidad. Sin embargo, los controladores de 64 bits de Windows 10 ahora deben estar firmados por Microsoft. Por lo tanto, los proveedores de dispositivos deben enviar sus controladores a Microsoft para su prueba y aprobación. El paquete de instalación del controlador incluye todos los archivos en el directorio .inf, y todos los archivos del paquete deben instalarse; de lo contrario, la instalación del controlador de dispositivo podría fallar. Para versiones de sistemas operativos anteriores a Windows 10, no todos los archivos necesarios para la instalación del controlador se incluían en el paquete, ya que este requisito no se aplicaba de forma consistente. Algunos instaladores de controladores de dispositivos tienen una interfaz gráfica de usuario (GUI) , que a menudo requiere la configuración por parte del usuario. La ausencia de una interfaz de usuario no significa que la instalación del controlador del dispositivo no se haya realizado correctamente. Además, los controladores de dispositivos de Windows 10 no pueden incluir una interfaz de usuario. El sistema operativo Windows 10 utiliza la especificación de interfaz de controlador de red (NDIS) 10.x para los dispositivos de red. Los controladores de dispositivos de red para Windows XP utilizan NDIS 5.x y pueden funcionar con sistemas operativos Windows posteriores, pero por motivos de rendimiento, se recomienda que los controladores de dispositivos de red implementen NDIS 6.0 o superior. [ 9 ]
Administrador de dispositivos
El Administrador de dispositivos es un miniaplicativo del Panel de control en los sistemas operativos Microsoft Windows. Permite a los usuarios ver y controlar el hardware conectado al equipo. Permite ver y modificar las propiedades de los dispositivos de hardware y es también la herramienta principal para administrar los controladores de dispositivos. [ 9 ]
Crítica
El modelo de controlador de Windows, si bien representa una mejora significativa con respecto al modelo de controlador VxD y Windows NT utilizado anteriormente, ha sido criticado por los desarrolladores de software de controladores, [ 10 ] principalmente por lo siguiente:
- Las interacciones con los eventos de administración de energía y la función Plug and Play son complicadas. Esto puede provocar que los equipos con Windows no puedan entrar o salir correctamente del modo de suspensión debido a errores en el código del controlador.
- La cancelación de E/S es difícil de implementar correctamente. [ 11 ]
- Se requiere un código de soporte repetitivo y complejo para cada controlador.
- No existe soporte para escribir controladores en modo usuario puro .
También surgieron varias preocupaciones sobre la calidad de la documentación y las muestras proporcionadas por Microsoft.
Debido a estos problemas, Microsoft ha lanzado un nuevo conjunto de marcos de trabajo sobre WDM, denominados Marcos de Controladores de Windows (WDF; anteriormente Fundación de Controladores de Windows), que incluyen el Marco de Controladores en Modo Kernel (KMDF) y el Marco de Controladores en Modo Usuario (UMDF). Windows Vista es compatible tanto con WDM puro como con el nuevo WDF. KMDF también está disponible para su descarga en Windows XP y Windows 2000, mientras que UMDF está disponible para Windows XP y versiones posteriores.
Véase también
Referencias
- ↑ Fuente, Microsoft (1996-04-01). "Microsoft anuncia el modelo de controlador Win32..." Fuente . Recuperado el 31-05-2026 .
- 1 2 3 4 5 Marco Vieira; João Carlos Cunha, eds. (2013). Computación confiable: 14º taller europeo, EWDC 2013, Coimbra, Portugal, 15 y 16 de mayo de 2013, Actas . Saltador. pag. 64.ISBN 9783642387890.
- 1 2 Bill Blunden (2009). El arsenal de los rootkits: escape y evasión . Jones & Bartlett Publishers. pág. 460. ISBN 9781449661229.
- ↑ Bill Blunden (2009). El arsenal de los rootkits: escape y evasión . Jones & Bartlett Publishers. pág. 460. ISBN 9781449661229.
- ↑ "Introducción a la Fundación de Controladores de Windows" . Microsoft Developer Network . 13 de octubre de 2006. Consultado el 6 de diciembre de 2010. Los
modelos de controladores específicos para cada clase de dispositivo suelen estar estructurados como un controlador de puerto escrito por Microsoft junto con un controlador de minipuerto escrito por un proveedor de hardware independiente. El controlador de puerto realiza gran parte del trabajo necesario para la clase de dispositivo, y el controlador de minipuerto admite características específicas del dispositivo.
- ↑ Bill Blunden (2009). El arsenal de los rootkits: escape y evasión . Jones & Bartlett Publishers. págs. 460–461 . ISBN 9781449661229.
- 1 2 Dave Penkler; Manfred Reitenspiess; Francis Tam, eds. (2006). Disponibilidad del servicio: Tercer Simposio Internacional sobre Disponibilidad del Servicio, ISAS 2006, Helsinki, Finlandia, 15-16 de mayo de 2006, Artículos seleccionados revisados . Springer Science & Business Media. pág. 124. ISBN 9783540687245.
- ↑ Dave Penkler; Manfred Reitenspiess; Francis Tam, eds. (2006). Disponibilidad del servicio: Tercer Simposio Internacional sobre Disponibilidad del Servicio, ISAS 2006, Helsinki, Finlandia, 15-16 de mayo de 2006, Artículos seleccionados revisados . Springer Science & Business Media. pág. 132. ISBN 9783540687245.
- 1 2 3 4 Byron Wright; Leon Plesniarski (2016). Guía especializada de Microsoft para Microsoft Windows 10 (Examen 70-697, Configuración de dispositivos Windows) . Cengage Learning. pág. 96. ISBN 9781285868578.
- ↑ Oney, Walter (6 de mayo de 2003). "Introducción al marco de controladores de Windows" . Windows Driver Developer's Digest . Vol. 1, n.º 3. Archivado del original el 25 de enero de 2016.
- ↑ "Directrices para la finalización/cancelación de E/S" . MSDN . Microsoft . 5 de mayo de 2003. Archivado del original el 9 de febrero de 2018. Consultado el 8 de febrero de 2018 .
- Finnel, Lynn (2000). Examen MCSE 70-215, Microsoft Windows 2000 Server . Microsoft Press . ISBN 1-57231-903-8.
- Oney, Walter (2003). Programación del modelo de controlador de Windows , Microsoft Press , ISBN 0-7356-1803-8.
Enlaces externos
- Conceptos de entrada/salida de WDM : este artículo ofrece una visión general de alto nivel de los conceptos de E/S definidos en el modelo de controlador de Windows.
- Conceptos básicos de la API de controladores de Windows : este artículo le informa sobre los conceptos básicos de los controladores de tarjetas de sonido, como WDM, ASIO , MME , DirectX, etc.
- Vídeo del Canal 9 : Entrevista con el equipo de Gestión e Instalación de Dispositivos de Microsoft, centrada principalmente en la tecnología Plug-and-play .
- Apuntes de clase sobre programación del kernel de Windows en Wayback Machine (archivados el 3 de marzo de 2016) : fragmento gratuito de un libro de apuntes de clase que detalla la creación básica de controladores de Windows, la programación en modo kernel y la gestión de memoria.
- Controladores de dispositivos
- Interfaces de programación de aplicaciones de Microsoft
- Windows 98
- Windows 2000