stringtranslate.com

Modelo de controlador de Windows

En informática , el modelo de controlador de Windows ( WDM ), también conocido en un momento como modelo de controlador Win32  , es un marco para controladores de dispositivos que se introdujo con Windows 98 y Windows 2000 para reemplazar VxD , que se usaba 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í 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 era necesario 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 con binarios y con fuentes 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 necesario ] . 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 hacerlo significaría que el controlador no puede aprovechar ninguna característica nueva introducida con la nueva versión. 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 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 escribir controladores para Windows. Aunque WDM fue diseñado principalmente para ser compatible con binarios y fuentes 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 controladores de dispositivos , y cada dispositivo de una computadora cuenta con una pila de controladores. Sin embargo, cada controlador en esa pila puede aislar en cadena funciones independientes del hardware del controlador que está encima y debajo de él. Por tanto, los controladores de 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 , 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 dispositivos WDM son: [2]

Conductor de autobús : para cada autobús en la placa principal hay un conductor de autobús, con la responsabilidad principal de 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, [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 al manejar 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 que un controlador de bus específico esté presente 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 orientada a objetos

Los conductores de funciones y los conductores de autobuses a menudo se implementan como pares de conductor/miniconductor, que en la práctica es una clase o miniclase, o un par de puerto o 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 determinado tipo de dispositivo. Los sistemas operativos Windows incluyen varios controladores de clase, como el controlador kbdclass.sys para teclados. Por otro lado, los controladores Miniclass son proporcionados por el proveedor de un dispositivo y solo admiten operaciones específicas del dispositivo, para un dispositivo particular de una clase determinada. [7]

Los controladores de puerto admiten operaciones generales de entrada/salida (E/S) para una interfaz de hardware periférica. La funcionalidad principal de los controladores de puertos la exige el sistema operativo y los sistemas operativos Windows integran una variedad de controladores de puertos. 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, los suministran 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 despacho de un controlador y las funciones miembro. En la pila del controlador WDM, el objeto del dispositivo del 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 de filtro superior no puede atender la solicitud, ubicará el objeto del controlador un paso más abajo en la pila de controladores. El IRP se transmite a la pila del controlador llamando a la función IoCallDrive() y se procesa mediante el objeto de dispositivo del controlador de función, también conocido como objeto de dispositivo funcional. El objeto de dispositivo 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 objeto del 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 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. [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 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 kernel. 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 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 confiabilidad y estrés. [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 podrá utilizar la funcionalidad completa del dispositivo y puede provocar un rendimiento deficiente y la desestabilización del sistema operativo Windows. Los proveedores de dispositivos de hardware pueden publicar controladores de dispositivos actualizados para sistemas operativos Windows específicos, para mejorar el rendimiento, agregar funcionalidad o corregir errores . Si un dispositivo no funciona como se esperaba, se deben descargar e instalar los controladores más recientes del sitio web del proveedor. [14]

Los controladores de dispositivos están diseñados para versiones particulares 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 correctamente 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 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 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 ilimitado al hardware de la computadora. Para los sistemas operativos anteriores a Windows 10, Microsoft permitía 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 en el directorio .inf y todos los archivos del paquete deben instalarse; 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 incluían en el paquete, ya que este requisito no se aplicaba de manera consistente. Algunos instaladores de controladores de dispositivos tienen una interfaz gráfica 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 del dispositivo no se haya realizado correctamente. Además, los controladores de dispositivos de Windows 10 no pueden incluir una interfaz de usuario. La Especificación de interfaz del controlador de red (NDIS) 10.x se utiliza para dispositivos de red mediante 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. [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 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 controlador, [18] principalmente por lo siguiente:

También hubo varias 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 superiores.

Ver también

Referencias

  1. ^ 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.
  2. ^ 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. ^ 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.
  4. ^ 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.
  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.
  6. ^ Bill Blunden (2009). El arsenal de Rootkit: escape y evasión . Editores Jones y Bartlett. pag. 460.ISBN 9781449661229.
  7. ^ Bill Blunden (2009). El arsenal de Rootkit: escape y evasión . Editores Jones y Bartlett. pag. 460.ISBN 9781449661229.
  8. ^ Bill Blunden (2009). El arsenal de Rootkit: escape y evasión . Editores Jones y Bartlett. pag. 460.ISBN 9781449661229.
  9. ^ "Introducción a Windows Driver Foundation". Red de desarrolladores de Microsoft . 2006-10-13 . Consultado el 6 de diciembre de 2010 . Los modelos de controladores específicos de clase de dispositivo generalmente están 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 requerido para la clase de dispositivo y el controlador de minipuerto admite características específicas del dispositivo.
  10. ^ Bill Blunden (2009). El arsenal de Rootkit: escape y evasión . Editores Jones y Bartlett. págs. 460–461. ISBN 9781449661229.
  11. ^ Dave Penkler; Manfred Reitenspiess; Francisco Tam, eds. (2006). Disponibilidad de servicios: Tercer Simposio internacional sobre disponibilidad de servicios, ISAS 2006, Helsinki, Finlandia, 15 y 16 de mayo de 2006, artículos seleccionados revisados . Medios de ciencia y negocios de Springer. pag. 124.ISBN 9783540687245.
  12. ^ Dave Penkler; Manfred Reitenspiess; Francisco Tam, eds. (2006). Disponibilidad de servicios: Tercer Simposio internacional sobre disponibilidad de servicios, ISAS 2006, Helsinki, Finlandia, 15 y 16 de mayo de 2006, artículos seleccionados revisados . Medios de ciencia y negocios de Springer. pag. 124.ISBN 9783540687245.
  13. ^ Dave Penkler; Manfred Reitenspiess; Francisco Tam, eds. (2006). Disponibilidad de servicios: Tercer Simposio internacional sobre disponibilidad de servicios, ISAS 2006, Helsinki, Finlandia, 15 y 16 de mayo de 2006, artículos seleccionados revisados . Medios de ciencia y negocios de Springer. pag. 132.ISBN 9783540687245.
  14. ^ Byron Wright; León Plesniarski (2016). Guía de especialistas de Microsoft para Microsoft Windows 10 (examen 70-697, configuración de dispositivos Windows) . Aprendizaje Cengage. pag. 96.ISBN 9781285868578.
  15. ^ Byron Wright; León Plesniarski (2016). Guía de especialistas de Microsoft para Microsoft Windows 10 (examen 70-697, configuración de dispositivos Windows) . Aprendizaje Cengage. pag. 96.ISBN 9781285868578.
  16. ^ Byron Wright; León Plesniarski (2016). Guía de especialistas de Microsoft para Microsoft Windows 10 (examen 70-697, configuración de dispositivos Windows) . Aprendizaje Cengage. pag. 96.ISBN 9781285868578.
  17. ^ Byron Wright; León Plesniarski (2016). Guía de especialistas de Microsoft para Microsoft Windows 10 (examen 70-697, configuración de dispositivos Windows) . Aprendizaje Cengage. pag. 96.ISBN 9781285868578.
  18. ^ Oney, Walter (6 de mayo de 2003). "Presentación del marco de controladores de Windows". Resumen del desarrollador de controladores de Windows . vol. 1, núm. 3. Archivado desde el original el 25 de enero de 2016.
  19. ^ "Pautas de cancelación/finalización de E/S". MSDN . Microsoft . 5 de mayo de 2003 . Consultado el 8 de febrero de 2018 .

enlaces externos