UMDF basado en subconjunto COM
Advertencia
UMDF 2 es la versión más reciente de UMDF y sustituye a UMDF 1. Todos los controladores UMDF nuevos deben escribirse con UMDF 2. No se agregan nuevas características a UMDF 1 y hay compatibilidad limitada con UMDF 1 en versiones más recientes de Windows 10. Los controladores universales de Windows deben usar UMDF 2.
Los ejemplos de UMDF 1 archivados se pueden encontrar en la actualización de ejemplos de controladores de Windows 11, versión 22H2 - mayo de 2022.
Para obtener más información, consulta Introducción con UMDF.
Los objetos e interfaces del marco se basan en el Modelo de objetos componentes (COM) por los siguientes motivos:
COM es familiar para muchos programadores de aplicaciones.
C++ es el lenguaje preferido para programar aplicaciones COM.
Las interfaces COM permiten agrupaciones lógicas de funciones, de modo que la interfaz del controlador de dispositivo (DDI) sea fácil de entender y navegar.
El uso de COM permite que la DDI amplíe y evolucione sin necesidad de que se vuelvan a compilar los archivos DLL del controlador existentes.
Numerosas herramientas, como Microsoft Visual Studio y la biblioteca de plantillas activas (ATL), admiten aplicaciones y objetos basados en COM.
El marco utiliza solo un pequeño subconjunto de COM; no depende de toda la infraestructura COM ni de la biblioteca en tiempo de ejecución. En su lugar, el marco usa solo las características de interfaz de consulta y recuento de referencias. Cada interfaz de marco deriva de IUnknown y, por tanto, admite los métodos QueryInterface, AddRef y Release de forma predeterminada. Los métodos AddRef y Release administran la duración del objeto. El método QueryInterface permite a otros componentes determinar qué interfaces admite el controlador.