stringtranslate.com

Modelo de controlador de Windows

En informática , el Modelo de controlador de Windows ( WDM ), también conocido en algún 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 usaba en versiones anteriores de Windows, como Windows 95 y Windows 3.1 , así como el Modelo de controlador de Windows NT .

Descripción general

Los controladores WDM se disponen en capas en una pila y se comunican entre sí a través de paquetes de solicitud de E/S (IRP). El modelo de controladores 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 necesitaba 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 instala el modelo WDM), Windows NT 4.0 y Windows 3.1. Al cumplir con WDM, los controladores pueden ser compatibles a nivel binario y a nivel de fuente 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 [ cita requerida ] . Los controladores WDM están diseñados para ser compatibles con versiones anteriores, de modo que un controlador WDM pueda ejecutarse en una versión de Windows más reciente que la versión para la que se escribió el controlador inicialmente, pero eso significaría que el controlador no puede aprovechar las nuevas características introducidas con la nueva versión. WDM generalmente no es compatible con versiones anteriores , es decir, no se garantiza que un controlador WDM se ejecute en cualquier versión anterior de Windows. Por ejemplo, Windows XP puede usar un controlador escrito para Windows 2000 , pero no hará uso de ninguna de las nuevas características WDM que se introdujeron en Windows XP. Sin embargo, un controlador escrito para Windows XP puede o no cargarse 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 que fuera compatible en términos binarios 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 cualquiera de los dos sistemas operativos.

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 encadenar características independientes del hardware del controlador que está por encima y por debajo de él. Por lo tanto, los controladores en la pila no necesitan interactuar directamente entre sí. WDM define la arquitectura y los procedimientos de los dispositivos 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 dispositivos, no todas las pilas de controladores de un dispositivo determinado contienen todos los tipos de controladores de dispositivos. Los tres tipos de controladores de dispositivos WDM son: [1]

Controlador de bus : para cada bus de la placa base hay un controlador de bus, cuya responsabilidad principal es la identificación de todos los dispositivos conectados a ese bus y la respuesta a los eventos plug and play. Microsoft proporcionará controladores de bus como parte del sistema operativo, [1] como PCI , PnPISA , SCSI , USB y FireWire .

Controlador de función : es el controlador principal de un dispositivo y proporciona la interfaz operativa para un dispositivo al manejar operaciones de lectura y escritura. Los controladores de función son escritos por los proveedores del dispositivo y, para su interacción con el hardware, dependen de que exista un controlador de bus específico en el sistema operativo Windows. [1]

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 de nivel superior. [1]

Pila de controladores orientada a objetos

Los controladores de funciones y los controladores de bus a menudo se implementan como pares controlador/minicontrolador, que en la práctica son una clase o miniclase, o un par puerto o minipuerto. [2]

Los controladores de bus para dispositivos conectados a un bus se implementan como controladores de clase y son independientes del hardware. Admitirán las operaciones de un determinado tipo de dispositivo. Los sistemas operativos Windows incluyen una serie de 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 particular de una clase determinada. [2]

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 está determinada por el 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 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 admiten únicamente operaciones específicas del dispositivo de hardware periférico que esté conectado a un puerto en la placa base. [3] [4]

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 de 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 paso más abajo en la pila de controladores. El IRP se pasa a la pila de controladores llamando a la función IoCallDriver(), 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 pasarse al controlador de bus, que funciona como el objeto de dispositivo físico. El objeto del controlador de bus se encuentra en la parte inferior de la pila de controladores e interactúa con la capa de abstracción de hardware , que es 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. [5] 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. [6]

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 se implementan como archivos .DLL o .SYS de bibliotecas de vínculos dinámicos . 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. [6] 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 confiabilidad y estrés. [7]

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 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 los controladores de dispositivo más recientes del sitio web del proveedor e instalarlos. [8]

Los controladores de dispositivos están diseñados para versiones específicas del sistema operativo Windows, y es posible que los controladores de dispositivos para 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, migrar un equipo a una versión superior de un sistema operativo Windows requiere que se instalen 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. [8]

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 se requiere 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, porque 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 sus propios controladores de 64 bits, asumiendo que los proveedores habían 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 pruebas 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 estar instalados, 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 aplicó de manera consistente. Algunos instaladores de controladores de dispositivos tienen una interfaz de usuario GUI , 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 dispositivo de Windows 10 no pueden incluir una interfaz de usuario. La Especificación de interfaz de controlador de red (NDIS) 10.x se utiliza para dispositivos de red por el sistema operativo Windows 10. Los controladores de dispositivos de red para Windows XP utilizan NDIS 5.x y 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. [8] De manera similar, WDDM es el modelo de controlador para Windows Vista y posteriores, que reemplaza a XPDM utilizado en controladores de gráficos.

Administrador de dispositivos

El Administrador de dispositivos es una aplicación del Panel de control de 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 del dispositivo de hardware y también es la herramienta principal para administrar los controladores de dispositivos. [8]

Crítica

El modelo de controlador de Windows, si bien representa una mejora significativa respecto del modelo de controlador VxD y Windows NT utilizado antes, ha sido criticado por los desarrolladores de software de controlador, [9] principalmente por lo siguiente:

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 de trabajo sobre WDM, denominados Windows Driver Frameworks (WDF; anteriormente Windows Driver Foundation), que incluyen Kernel-Mode Driver Framework (KMDF) y User-Mode Driver Framework (UMDF). Windows Vista admite tanto WDM puro como el nuevo WDF. KMDF también está disponible para su descarga para Windows XP e incluso Windows 2000, mientras que UMDF está disponible para Windows XP y versiones posteriores.

Véase también

Referencias

  1. ^ abcde Marco Vieira; Joao Carlos Cunha, eds. (2013). Computación confiable: 14.° taller europeo, EWDC 2013, Coimbra, Portugal, 15 y 16 de mayo de 2013, Actas . Springer. pág. 64. ISBN 9783642387890.
  2. ^ de Bill Blunden (2009). El arsenal de rootkits: escape y evasión . Jones & Bartlett Publishers. pág. 460. ISBN 9781449661229.
  3. ^ Bill Blunden (2009). El arsenal de rootkits: escape y evasión . Jones & Bartlett Publishers. pág. 460. ISBN 9781449661229.
  4. ^ "Introducción a Windows Driver Foundation". Microsoft Developer Network . 13 de octubre de 2006 . Consultado el 6 de diciembre de 2010 . Los modelos de controlador específicos de la 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.
  5. ^ Bill Blunden (2009). El arsenal de rootkits: escape y evasión . Jones & Bartlett Publishers. págs. 460–461. ISBN 9781449661229.
  6. ^ por Dave Penkler; Manfred Reitenspiess; Francis Tam, eds. (2006). Disponibilidad de servicios: Tercer simposio internacional sobre disponibilidad de servicios, ISAS 2006, Helsinki, Finlandia, 15 y 16 de mayo de 2006, Documentos seleccionados revisados . Springer Science & Business Media. pág. 124. ISBN 9783540687245.
  7. ^ Dave Penkler; Manfred Reitenspiess; Francis Tam, eds. (2006). Disponibilidad de servicios: Tercer simposio internacional sobre disponibilidad de servicios, ISAS 2006, Helsinki, Finlandia, 15 y 16 de mayo de 2006, Documentos revisados ​​seleccionados . Springer Science & Business Media. pág. 132. ISBN 9783540687245.
  8. ^ abcd Byron Wright; Leon Plesniarski (2016). Guía de Microsoft Specialist para Microsoft Windows 10 (Examen 70-697, Configuración de dispositivos Windows) . Cengage Learning. pág. 96. ISBN 9781285868578.
  9. ^ Oney, Walter (6 de mayo de 2003). "Introducción a Windows Driver Framework". Windows Driver Developer's Digest . Vol. 1, núm. 3. Archivado desde el original el 25 de enero de 2016.
  10. ^ "Directrices de finalización/cancelación de E/S". MSDN . Microsoft . 5 de mayo de 2003 . Consultado el 8 de febrero de 2018 .

Enlaces externos