Compartir vía


Elección de un modelo de controlador

Microsoft Windows proporciona una variedad de modelos de controladores que puede usar para escribir controladores. La estrategia para elegir el mejor modelo de controlador depende del tipo de controlador que planea escribir. Estas son las opciones:

  • Controlador de función de dispositivo
  • Controlador de filtro de dispositivo
  • Controlador de software
  • Controlador de filtro del sistema de archivos
  • Controlador del sistema de archivos

Para obtener una explicación sobre las diferencias entre los distintos tipos de controladores, consulte ¿Qué es un controlador? y Nodos de dispositivo y pilas de dispositivos. En las secciones siguientes se explica cómo elegir un modelo para cada tipo de controlador.

Elección de un modelo de controlador para un controlador de función de dispositivo

A medida que diseña un dispositivo de hardware, una de las primeras cosas que se deben tener en cuenta es si necesita escribir un controlador de función. Haga las preguntas siguientes:

¿Puede evitar escribir un controlador completamente? Si debe escribir un controlador de función, ¿cuál es el mejor modelo de controlador que se va a usar? Para responder a estas preguntas, determine dónde encaja el dispositivo en la lista de tecnologías descritas en Tecnologías de dispositivos y controladores. Consulte la documentación de esa tecnología concreta para determinar si necesita escribir un controlador de funciones y obtener información sobre qué modelos de controladores están disponibles para el dispositivo.

Algunas de las tecnologías individuales tienen modelos de minidriver. En un modelo de minidriver, el controlador de dispositivo consta de dos partes: una que controla las tareas generales y otra que controla las tareas específicas del dispositivo. Normalmente, Microsoft escribe la parte general y el fabricante del dispositivo escribe la parte específica del dispositivo. Las partes específicas del dispositivo tienen varios nombres, la mayoría de los cuales comparten el prefijo mini. Estos son algunos de los nombres usados en los modelos de minidriver:

  • Controlador de minipuerto para mostrar
  • Controlador de minipuerto de audio
  • Controlador miniclase de batería
  • Controlador de protocolo Bluetooth
  • Minidriver HID
  • Minidriver WIA
  • Controlador de miniport NDIS
  • Controlador de miniport de almacenamiento
  • Minidriver de streaming

Para obtener información general sobre los modelos de minidriver, consulte Minidrivers and driver pairs (Minidrivers and driver pairs).

No todas las tecnologías enumeradas en Tecnologías de dispositivos y controladores tienen un modelo de minidriver dedicado. La documentación de una tecnología determinada puede aconsejarle que use el marco de controladores del modo kernel (KMDF) ; la documentación de otra tecnología puede aconsejarle que use el marco de controladores del modo de usuario (UMDF). El punto clave es que debe empezar estudiando la documentación de su tecnología de dispositivo específica. Si la tecnología del dispositivo tiene un modelo de minidriver, debe usar el modelo de minidriver. De lo contrario, siga los consejos de la documentación específica de la tecnología sobre si usar UMDF, KMDF o windows Driver Model (WDM).

Elección de un modelo de controlador para un controlador de filtro de dispositivo

Con frecuencia, varios controladores participan en una única solicitud de E/S (como leer datos de un dispositivo). Los controladores se colocan en capas en una pila y la forma convencional de visualizar la pila es con el primer controlador en la parte superior y el último controlador en la parte inferior. La pila tiene un controlador de función y también puede tener controladores de filtro. Para obtener una explicación sobre los controladores de funciones y los controladores de filtro, consulte ¿Qué es un controlador? y Nodos de dispositivo y pilas de dispositivos.

Si está preparando para escribir un controlador de filtro para un dispositivo, determine dónde encaja el dispositivo en la lista de tecnologías descritas en Tecnologías de dispositivos y controladores. Compruebe si la documentación de su tecnología de dispositivo concreta tiene alguna guía sobre cómo elegir un modelo de controlador de filtro. Si la documentación de la tecnología del dispositivo no ofrece esta guía, primero considere la posibilidad de usar UMDF como modelo de controlador. Si el controlador de filtro necesita acceso a estructuras de datos que no están disponibles a través de UMDF, considere la posibilidad de usar KMDF como modelo de controlador. En raras ocasiones, el controlador necesita acceso a estructuras de datos que no están disponibles a través de KMDF, use WDM como modelo de controlador.

Elección de un modelo de controlador para un controlador de software

Un controlador que no está asociado a un dispositivo se denomina controlador de software. Para obtener una explicación sobre los controladores de software, consulte ¿Qué es un controlador?. Los controladores de software son útiles porque se pueden ejecutar en modo kernel, lo que les proporciona acceso a los datos protegidos del sistema operativo. Para obtener información sobre los modos de procesador, consulte Modo de usuario y modo kernel.

Para un controlador de software, las dos opciones son KMDF y el modelo de controlador de Windows NT heredado. Con KMDF y el modelo heredado de Windows NT, puede escribir el controlador sin preocuparse por Plug and Play (PnP) y la administración de energía. En su lugar, puede concentrarse en las tareas principales del controlador. Con KMDF, no tiene que preocuparse por PnP y la potencia porque el marco controla PnP y potencia para usted. Con el modelo de Windows NT heredado, no es necesario preocuparse por PnP y la potencia porque los servicios en modo kernel funcionan en un entorno que es completamente independiente de PnP y la administración de energía.

Nuestra recomendación es que use KMDF, especialmente si ya está familiarizado con ella. Si quieres que el controlador sea completamente independiente de PnP y de la administración de energía, usa el modelo heredado de Windows NT. Si necesita escribir un controlador de software que tenga en cuenta las transiciones de energía o los eventos PnP, no puede usar el modelo de Windows NT heredado; debe usar KMDF.

Nota: En el caso muy raro de que necesita escribir un controlador de software que sea consciente de PnP o eventos de energía, y el controlador necesita acceso a los datos que no están disponibles a través de KMDF, debe usar WDM.

Elección de un modelo de controlador para un controlador del sistema de archivos

Para obtener ayuda para elegir un modelo para un controlador del sistema de archivos, consulte Ejemplos de controladores del sistema de archivos. Tenga en cuenta que los controladores del sistema de archivos pueden ser complejos y pueden requerir conocimientos de conceptos avanzados para el desarrollo de controladores.

Elección de un modelo de controlador para un controlador de filtro del sistema de archivos

Para obtener ayuda para elegir un modelo para un controlador de filtro del sistema de archivos, consulte Controladores de minifiltro del sistema de archivos y Controladores de filtro del sistema de archivos.

Elección de un modelo de controlador para un controlador de minifiltro del sistema de archivos

Para obtener ayuda para elegir un modelo para un controlador de minifiltro del sistema de archivos, consulte Controladores de minifiltro del sistema de archivos.

Marco de controlador en modo kernel

Marco de controlador en modo de usuario