Como todos sabemos, el modelo de controlador WDF, a partir de Windows 2000, el desarrollo de controladores debe basarse en WDM. Sin embargo, su desarrollo es muy difícil y no podemos esperar que sea tan fácil como el desarrollo de aplicaciones en modo de usuario. Para mejorar esta situación, Microsoft lanzó un nuevo entorno de desarrollo de controladores. Cabe señalar de antemano que esto no es una reinvención, sino un modelado y encapsulación basado en WDM. La característica importante es que reduce la dificultad de desarrollo. porque:
1. Aplicar la tecnología original basada en objetos en la programación ordinaria al desarrollo de controladores. Aunque existe un modelo de objetos en WDM, no es en absoluto lo mismo que una verdadera tecnología basada en objetos. Para implementar tecnología basada en objetos, Microsoft diseñó cuidadosamente el modelo de objetos y lo encapsuló. Propiedades, métodos, eventos, etc. "ninguno de ellos puede faltar".
2. Tanto los controladores en modo kernel como los controladores en modo usuario se crean utilizando el mismo modelo de objetos y utilizan el mismo soporte básico. Esta fundación es WDF. Aunque WDF ya es un modelo de objetos encapsulado y definido, para los objetos en modo kernel y en modo usuario, WDF es el objeto principal de ambos. En otras palabras, ambos se heredan de WDF o ambos se derivan de WDF. En relación con el modo kernel, el objeto derivado se denomina "marco KMD" o KMDF; en relación con el modo usuario, el modelo derivado se denomina "marco UMD" o UMDF. Independientemente del modelo del marco, sus métodos de encapsulación interna y comportamientos de ejecución en realidad se completan utilizando WDM.
3. Más importante aún, y lo que Microsoft ha mostrado repetidamente, es la encapsulación de ciertos comportamientos comunes en los controladores: por ejemplo, plug and play y administración de energía pertenecen a este comportamiento común. Debido a que la mayoría de los controladores necesitan lidiar con problemas de plug-and-play y administración de energía, se dice que esto requiere alrededor de miles de líneas de código. Además, es posible que no pueda manejarlo bien sin un cierto nivel de competencia. Para resolver el problema de una vez por todas, WDF simplemente encapsuló plug-and-play y administración de energía en el objeto, convirtiéndolo en el comportamiento predeterminado del objeto de una sola vez.
4. Se ha cambiado la relación entre el kernel del sistema operativo y el controlador. En el controlador WDM, por un lado, tiene que lidiar con el hardware y, por otro lado, tiene que lidiar con la interacción entre el controlador. y el núcleo del sistema operativo. Ahora WDF separa el controlador del kernel del sistema operativo. La interacción entre el controlador y el sistema operativo se completa mediante métodos (funciones) encapsulados en el marco, de modo que los desarrolladores de controladores solo necesitan concentrarse en procesar el comportamiento del hardware. Esto no sólo evita las desventajas de centrarse en una cosa a expensas de la otra, sino que además, debido a la separación de las dos partes, resulta de gran beneficio para ciertos cambios en el sistema operativo y el desarrollo de controladores de soporte para los fabricantes de hardware. .
5. Ambos modos de controladores (KMDF, UMDF) se crean utilizando el mismo entorno, que se llama WDK.
Es decir, el entorno de desarrollo de KMDF y UMDF es WDK.
Kit de dispositivos de Windows (WDK): al integrar conjuntos de pruebas, el DDK se convierte en el WDK. WDK es un sistema de desarrollo integrado de controladores para la serie de sistemas operativos de Microsoft. Combina kits de prueba de compatibilidad de hardware (HCT) y DDK de Windows (herramientas de prueba de compatibilidad de hardware) y también proporciona el conjunto de pruebas internas de Microsoft para probar la estabilidad y confiabilidad de los sistemas operativos Windows.
6. Aunque está encapsulado y se introduce tecnología basada en objetos, la eficiencia de ejecución del controlador desarrollado no es inferior al original.
Este artículo proviene del blog de CSDN. Indique la fuente al reimprimir: http://blog.csdn.net/ding_3/archive/2009/12/23/5060907.aspx.
-