UMDF com base no subconjunto COM
Aviso
O UMDF 2 é a versão mais recente do UMDF e substitui o UMDF 1. Todos os novos drivers UMDF devem ser gravados usando UMDF 2. Nenhum novo recurso está sendo adicionado ao UMDF 1 e há suporte limitado para UMDF 1 em versões mais recentes do Windows 10. Drivers universais do Windows devem usar UMDF 2.
Os exemplos umdf 1 arquivados podem ser encontrados no Windows 11, versão 22H2 – Atualização de exemplos de driver de maio de 2022.
Para obter mais informações, consulte Introdução com UMDF.
Os objetos e interfaces da estrutura são baseados no COM (Component Object Model) pelos seguintes motivos:
O COM é familiar para muitos programadores de aplicativos.
C++ é a linguagem preferencial para programação de aplicativos COM.
As interfaces COM permitem agrupamentos lógicos de funções, para que a DDI (interface de driver de dispositivo) seja fácil de entender e navegar.
O uso de COM permite que a DDI se estenda e evolua sem exigir que as DLLs de driver existentes sejam recompiladas.
Várias ferramentas, incluindo o Microsoft Visual Studio e a ATL (biblioteca de modelos ativos), dão suporte a aplicativos e objetos baseados em COM.
A estrutura usa apenas um pequeno subconjunto de COM; ele não depende de toda a infraestrutura COM e da biblioteca de runtime. Em vez disso, a estrutura usa apenas os recursos query-interface e reference-counting. Cada interface de estrutura deriva de IUnknown e, portanto, dá suporte aos métodos QueryInterface, AddRef e Release por padrão. Os métodos AddRef e Release gerenciam o tempo de vida do objeto. O método QueryInterface permite que outros componentes determinem quais interfaces o driver dá suporte.