Articulo de referencia

Modelo de controlador de Windows

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 q...

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:

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

  1. Fuente, Microsoft (1996-04-01). "Microsoft anuncia el modelo de controlador Win32..." Fuente . Recuperado el 31-05-2026 .
  2. 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.
  3. 1 2 Bill Blunden (2009). El arsenal de los rootkits: escape y evasión . Jones & Bartlett Publishers. pág. 460. ISBN  9781449661229.
  4. Bill Blunden (2009). El arsenal de los rootkits: escape y evasión . Jones & Bartlett Publishers. pág. 460. ISBN  9781449661229.
  5. "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.
  6. Bill Blunden (2009). El arsenal de los rootkits: escape y evasión . Jones & Bartlett Publishers. págs. 460–461 . ISBN  9781449661229.
  7. 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.
  8. 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.
  9. 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.
  10. 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.  
  11. "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.
  • 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.