En informática , el modelo de controlador de Windows ( WDM ), también conocido en un momento como el modelo de controlador de Win32 , es un marco para controladores de dispositivo que se introdujo con Windows 98 y Windows 2000 para reemplazar VxD , que se utilizó en versiones anteriores de Windows como como Windows 95 y Windows 3.1 , así como el modelo de controlador de Windows NT .
Descripción general
Los controladores WDM se colocan en capas en una pila y se comunican entre sí a través de paquetes de solicitud de E / S (IRP). El modelo de controlador de Microsoft Windows unificó los modelos de controlador para las líneas de productos Windows 9x y Windows NT al estandarizar los requisitos y reducir la cantidad de código que debía escribirse. 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 incluye el modelo WDM), Windows NT 4.0 y Windows 3.1. Al ajustarse a WDM, los controladores pueden ser compatibles con archivos binarios y fuentes compatibles en Windows 98, Windows 98 Second Edition, Windows Me , Windows 2000, Windows XP , Windows Server 2003 y Windows Vista (para compatibilidad con versiones anteriores) en computadoras basadas 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 nueva de la que se escribió inicialmente, pero hacerlo significaría que el controlador no puede aprovechar las nuevas funciones introducidas con el nuevo versión. Por lo general, WDM no es compatible con versiones anteriores , es decir, no se garantiza que un controlador WDM se ejecute en ninguna versión anterior de Windows. Por ejemplo, Windows XP puede utilizar un controlador escrito para Windows 2000, pero no utilizará ninguna de las nuevas funciones de WDM que se introdujeron en Windows XP. Sin embargo, un controlador escrito para Windows XP puede cargarse o no en Windows 2000.
WDM existe en la capa intermedia de los controladores en modo kernel de Windows 2000 y se introdujo para aumentar la funcionalidad y la facilidad de escritura de controladores para Windows. Aunque WDM se diseñó principalmente para ser binario y compatible con la fuente entre Windows 98 y Windows 2000, es posible que esto no siempre sea deseado y, por lo tanto, se pueden desarrollar controladores específicos para cualquiera de los sistemas operativos.
Controladores de dispositivo en modo kernel
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 servido por una pila de controladores. Sin embargo, todos los controladores de esa pila pueden aislar en cadena las características independientes del hardware del controlador de arriba y de debajo. Por lo tanto, los controladores de la pila no necesitan interactuar directamente entre sí. WDM define la arquitectura y los procedimientos del dispositivo para una variedad de dispositivos, como la pantalla y la tarjeta de red , conocida 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). [1]
Si bien WDM define tres tipos de controladores de dispositivo, no todas las pilas de controladores para un dispositivo determinado contienen todos los tipos de controladores de dispositivo. Los tres tipos de controladores de dispositivo WDM son: [2]
Conductor del autobús : para cada autobús en la placa principal hay un conductor de autobús, con la responsabilidad principal de la identificación de todos los dispositivos conectados a ese autobús y de responder a los eventos plug and play. Microsoft proporcionará controladores de bus como parte del sistema operativo, [3] como PCI , PnPISA , SCSI , USB y FireWire .
Controlador de función : este es el controlador principal de un dispositivo y proporciona la interfaz operativa para un dispositivo mediante el manejo de operaciones de lectura y escritura. Los controladores de funciones los escriben los proveedores 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. [4]
Controlador de filtro : este controlador es opcional y puede modificar el comportamiento de un dispositivo, como las solicitudes de entrada y salida. Estos controladores se pueden implementar como controladores de filtro de nivel inferior y superior. [5]
Pila de controladores orientados a objetos
Los controladores de función y los controladores de bus se implementan a menudo como pares de controlador / miniconductor, que en la práctica es un par de clase / miniclase o puerto / minipuerto. [6]
Los controladores de bus para dispositivos conectados a un bus se implementan como controladores de clase y son independientes del hardware. Apoyarán las operaciones de un cierto tipo 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 proveedor de un dispositivo y solo admiten operaciones específicas del dispositivo, para un dispositivo en particular de una clase determinada. [7]
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 es un mandato del sistema operativo, y los sistemas operativos Windows integran una variedad de 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 de minipuerto, al igual que los controladores de miniclase, son suministrados por los proveedores de hardware y solo admiten operaciones específicas del dispositivo de hardware periférico que está conectado a un puerto en la placa base. [8] [9]
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 envío de un controlador y las funciones de los miembros. En la pila de controladores WDM, el objeto de dispositivo de controlador de filtro, conocido como filtro superior, recibirá un paquete de solicitud de E / S (IRP) para un dispositivo desde el administrador de E / S. Si el controlador del filtro superior no puede atender la solicitud, localizará el objeto del controlador un paso más abajo en la pila de controladores. El IRP se transmite a la pila de controladores llamando a la función IoCallDrive () y se procesa mediante el objeto de dispositivo de controlador de función, también conocido como objeto de dispositivo funcional. El objeto de dispositivo de controlador de función, a su vez, puede pasar el IRP al filtro inferior, otro objeto de dispositivo de filtro. Luego, el IRP puede transmitirse al conductor del autobús, que funciona como el objeto del dispositivo físico. El objeto del controlador de bus está en la parte inferior de la pila de controladores e interactúa con la capa de abstracción de hardware , que es parte del kernel 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. [10] La ejecución de un IRP finaliza cuando cualquiera de los objetos del controlador en la pila devuelve la solicitud al administrador de E / S, con el resultado y un indicador de estado. [11]
Controladores de dispositivo para diferentes sistemas operativos de Windows
Microsoft desarrolló el marco WDM para simplificar la comunicación entre el sistema operativo y los controladores dentro del kernel. En los sistemas operativos Windows, los controladores se implementan como archivos Dynamic Link Libraries .DLL o .SYS. Los controladores compatibles con WDM deben seguir las 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 de la pila WDM pueden contener funcionalidad residual, que no está documentada en las especificaciones. [12] Los controladores que han pasado 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 resistencia y confiabilidad. [13]
Un controlador de dispositivo que no está diseñado para un componente de hardware específico puede permitir que funcione otro dispositivo. 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 del 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 significará que no se puede utilizar la funcionalidad completa del dispositivo y puede resultar en un rendimiento deficiente y la desestabilización del sistema operativo Windows. Los proveedores de dispositivos de hardware pueden lanzar controladores de dispositivos actualizados para sistemas operativos Windows particulares, para mejorar el rendimiento, agregar funcionalidad o corregir errores . Si un dispositivo no funciona como se esperaba, los controladores de dispositivo más recientes deben descargarse del sitio web del proveedor e instalarse. [14]
Los controladores de dispositivo están diseñados para versiones particulares del sistema operativo Windows, y es posible que los controladores de dispositivos de una versión anterior de Windows no funcionen correctamente o no funcionen en absoluto con otras versiones. Debido a 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 el sistema operativo Windows. Por lo tanto, la migración de una computadora a una versión superior de un sistema operativo Windows requiere que se instalen nuevos controladores de dispositivo 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. [15]
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 dispositivos de 64 bits deben estar firmados por Microsoft, ya que se ejecutan en modo kernel y tienen acceso sin restricciones al hardware de la computadora. Para los sistemas operativos anteriores a Windows 10, Microsoft permitió a los proveedores firmar ellos mismos sus controladores de 64 bits, asumiendo que los proveedores habían realizado pruebas de compatibilidad. Sin embargo, los controladores de Windows 10 de 64 bits 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 del directorio .inf y es necesario instalar todos los archivos del paquete; de lo contrario, la instalación del controlador del dispositivo puede fallar. Para las versiones del sistema operativo anteriores a Windows 10, no todos los archivos necesarios para la instalación del controlador se incluyeron en el paquete, ya que este requisito no se cumplió de manera consistente. Algunos instaladores de controladores de dispositivo tienen una GUI de interfaz de usuario , que a menudo requiere la entrada de configuración del usuario. La ausencia de una interfaz de usuario no significa que la instalación del controlador de dispositivo no sea exitosa. 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 dispositivos de red. Los controladores de dispositivos de red para Windows XP usan NDIS 5.xy pueden funcionar con sistemas operativos Windows posteriores, pero por razones de rendimiento, los controladores de dispositivos de red deben implementar NDIS 6.0 o superior. [16] De manera similar, WDDM es el modelo de controlador para Windows Vista y versiones posteriores, que reemplaza a XPDM utilizado en los controladores de gráficos.
Administrador de dispositivos
El Administrador de dispositivos es un subprograma del Panel de control en los sistemas operativos Microsoft Windows. Permite a los usuarios ver y controlar el hardware conectado a la computadora. Permite a los usuarios ver y modificar las propiedades de los dispositivos de hardware y también es la herramienta principal para administrar los controladores de dispositivos. [17]
Crítica
El modelo de controlador de Windows, si bien constituye una mejora significativa con respecto al modelo de controlador VxD y Windows NT utilizado antes, ha sido criticado por los desarrolladores de software de controlador, [18] de manera más significativa por lo siguiente:
- Las interacciones con eventos de administración de energía y plug and play son difíciles. Esto puede llevar a situaciones en las que las máquinas 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 realizar correctamente. [19]
- Se requiere un código de soporte repetitivo complejo para cada controlador.
- No hay soporte para escribir controladores en modo de usuario puro .
También hubo una serie de preocupaciones sobre la calidad de la documentación y las muestras que proporcionó Microsoft.
Debido a estos problemas, Microsoft ha lanzado un nuevo conjunto de marcos además de WDM, llamado Windows Driver Frameworks (WDF; anteriormente Windows Driver Foundation), que incluye Kernel-Mode Driver Framework (KMDF) y User-Mode Driver Framework (UMDF). ). Windows Vista admite tanto WDM puro como el WDF más nuevo. KMDF también está disponible para descargar para Windows XP e incluso Windows 2000, mientras que UMDF está disponible para Windows XP y superior.
Ver también
- Marcos de controladores de Windows (WDF)
- Marco de controlador en modo kernel (KMDF)
- Marco de controlador de modo de usuario (UMDF)
- Modelo de controlador de pantalla de Windows (WDDM)
Referencias
- ^ Marco Vieira; Joao Carlos Cunha, eds. (2013). Computación confiable: 14th European Workshop, EWDC 2013, Coimbra, Portugal, 15-16 de mayo de 2013, Actas . Saltador. pag. 64. ISBN 9783642387890.
- ^ Marco Vieira; Joao Carlos Cunha, eds. (2013). Computación confiable: 14th European Workshop, EWDC 2013, Coimbra, Portugal, 15-16 de mayo de 2013, Actas . Saltador. pag. 64. ISBN 9783642387890.
- ^ Marco Vieira; Joao Carlos Cunha, eds. (2013). Computación confiable: 14th European Workshop, EWDC 2013, Coimbra, Portugal, 15-16 de mayo de 2013, Actas . Saltador. pag. 64. ISBN 9783642387890.
- ^ Marco Vieira; Joao Carlos Cunha, eds. (2013). Computación confiable: 14th European Workshop, EWDC 2013, Coimbra, Portugal, 15-16 de mayo de 2013, Actas . Saltador. pag. 64. ISBN 9783642387890.
- ^ Marco Vieira; Joao Carlos Cunha, eds. (2013). Computación confiable: 14th European Workshop, EWDC 2013, Coimbra, Portugal, 15-16 de mayo de 2013, Actas . Saltador. pag. 64. ISBN 9783642387890.
- ^ Bill Blunden (2009). El Arsenal de Rootkit: Escape y Evasión . Editores Jones & Bartlett. pag. 460. ISBN 9781449661229.
- ^ Bill Blunden (2009). El Arsenal de Rootkit: Escape y Evasión . Editores Jones & Bartlett. pag. 460. ISBN 9781449661229.
- ^ Bill Blunden (2009). El Arsenal de Rootkit: Escape y Evasión . Editores Jones & Bartlett. pag. 460. ISBN 9781449661229.
- ^ "Introducción a la Windows Driver Foundation" . Red de desarrolladores de Microsoft . 2006-10-13 . Consultado el 6 de diciembre de 2010 .
Los modelos de controlador específicos de la clase de dispositivo normalmente se estructuran como un controlador de puerto escrito por Microsoft emparejado 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 Rootkit: Escape y Evasión . Editores Jones & Bartlett. págs. 460–461. ISBN 9781449661229.
- ^ Dave Penkler; Manfred Reitenspiess; Francis Tam, eds. (2006). Disponibilidad de servicios: Tercer Simposio Internacional de Disponibilidad de Servicios, ISAS 2006, Helsinki, Finlandia, 15-16 de mayo de 2006, artículos seleccionados revisados . Springer Science & Business Media. pag. 124. ISBN 9783540687245.
- ^ Dave Penkler; Manfred Reitenspiess; Francis Tam, eds. (2006). Disponibilidad de servicios: Tercer Simposio Internacional de Disponibilidad de Servicios, ISAS 2006, Helsinki, Finlandia, 15-16 de mayo de 2006, artículos seleccionados revisados . Springer Science & Business Media. pag. 124. ISBN 9783540687245.
- ^ Dave Penkler; Manfred Reitenspiess; Francis Tam, eds. (2006). Disponibilidad de servicios: Tercer Simposio Internacional de Disponibilidad de Servicios, ISAS 2006, Helsinki, Finlandia, 15-16 de mayo de 2006, artículos seleccionados revisados . Springer Science & Business Media. pag. 132. ISBN 9783540687245.
- ^ Byron Wright y Leon Plesniarski (2016). Guía especializada de Microsoft para Microsoft Windows 10 (Examen 70-697, Configuración de dispositivos Windows) . Aprendizaje Cengage. pag. 96. ISBN 9781285868578.Mantenimiento de CS1: utiliza el parámetro de autores ( enlace )
- ^ Byron Wright y Leon Plesniarski (2016). Guía especializada de Microsoft para Microsoft Windows 10 (Examen 70-697, Configuración de dispositivos Windows) . Aprendizaje Cengage. pag. 96. ISBN 9781285868578.Mantenimiento de CS1: utiliza el parámetro de autores ( enlace )
- ^ Byron Wright y Leon Plesniarski (2016). Guía especializada de Microsoft para Microsoft Windows 10 (Examen 70-697, Configuración de dispositivos Windows) . Aprendizaje Cengage. pag. 96. ISBN 9781285868578.Mantenimiento de CS1: utiliza el parámetro de autores ( enlace )
- ^ Byron Wright y Leon Plesniarski (2016). Guía especializada de Microsoft para Microsoft Windows 10 (Examen 70-697, Configuración de dispositivos Windows) . Aprendizaje Cengage. pag. 96. ISBN 9781285868578.Mantenimiento de CS1: utiliza el parámetro de autores ( enlace )
- ^ Oney, Walter (6 de mayo de 2003). "Presentación de Windows Driver Framework" . Resumen del desarrollador de controladores de Windows . Vol. 1 no. 3. Archivado desde el original el 25 de enero de 2016.
- ^ "Directrices de finalización / cancelación de E / S" . MSDN . Microsoft . 5 de mayo de 2003 . 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 y salida de WDM : este artículo ofrece una descripción general de alto nivel de los conceptos de E / S tal como se definen en el modelo de controlador de Windows.
- Conceptos básicos de la API del controlador de Windows : este artículo le informa sobre los conceptos básicos detrás de los controladores de tarjetas de sonido, como WDM, ASIO , MME , DirectX, etc.
- Video del canal 9 : entrevista con el equipo de instalación y administración de dispositivos de Microsoft, que cubre principalmente Plug-and-play .
- Lecture Notes on Windows Kernel Programming en Wayback Machine (archivado el 3 de marzo de 2016) - Fragmento gratuito del libro de notas de la conferencia que detalla la creación básica de controladores de Windows, la programación del modo Kernel y la gestión de la memoria