Marco de controlador de modo de usuario (UMDF) | |
---|---|
Tipo de | Plataforma de desarrollo de controladores de dispositivos |
Desarrollador | microsoft |
Escrito en | C , C++ |
Sistema operativo | Microsoft Windows |
Primera edición | 12 de octubre de 2004 |
ultima versión | 2.27 (24 de marzo de 2019 ) |
Licencia | Licencia MIT |
Sitio web | docs.microsoft.com/en-us/windows-hardware/drivers/wdf/overview-of-the-umdf |
El Marco de controlador de modo de usuario ( UMDF ) es un marco de desarrollo de controlador de modo de usuario introducido con Windows Vista y también disponible para Windows XP . Esto facilita la creación de controladores para clases de dispositivos específicas. [una]
Los controladores de dispositivos estándar pueden ser difíciles de escribir porque deben manejar una amplia gama de estados de dispositivos y sistemas, especialmente en un entorno de programación de subprocesos múltiples. Los controladores de dispositivos mal escritos pueden causar graves daños en el sistema (p. ej ., BSoD y daños en los datos) porque todos los controladores estándar tienen altos privilegios cuando acceden directamente al kernel. La plataforma de controlador en modo usuario aísla el núcleo de los problemas de acceso directo al controlador y, en cambio, proporciona una nueva clase de controlador con una interfaz de programación de aplicaciones dedicada para interrupciones a nivel de usuario y administración de memoria. En caso de error, la nueva estructura permite reiniciar el controlador inmediatamente sin afectar el sistema. Esto es especialmente útil para los dispositivos que se conectan de forma intermitente al sistema o que se pueden intercambiar en caliente a través de una tecnología de bus como USB o FireWire .
Según Microsoft, los controladores UMDF son más fáciles de escribir y depurar que los controladores en modo kernel. [2] Sin embargo, UMDF no se utilizará para dispositivos con estado o de alto rendimiento.
La primera versión de UMDF se envió como parte de la versión 10 de Windows Media Player el 12 de octubre de 2004. Con el nombre en código "Crescent", fue diseñado para admitir el controlador del Protocolo de transferencia de medios y no se han proporcionado interfaces públicas ni documentación para él. Más tarde, Microsoft decidió convertir UMDF en una plataforma de desarrollo de controladores de dispositivos. [3]
El controlador UMDF es una DLL basada en el Modelo de objetos componentes (COM) de Microsoft. Sin embargo, UMDF no usa COM para cargar, descargar o controlar la concurrencia ; solo usa COM como un patrón de diseño , como usar la interfaz COM IUnknown . En el inicio, UMDF llama a "DllGetClassObject" para obtener un puntero a la interfaz "IClassFactory" en el controlador y luego usa el método "CreateInstance" de la interfaz IClassFactory para instanciar el objeto de devolución de llamada del controlador.
Un objeto controlador es una instancia de la interfaz IWDFDriver proporcionada por el marco. El controlador expone un conjunto de devoluciones de llamada a través de la interfaz COM IDriverEntry, que es el punto de entrada principal para la configuración del controlador.