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.