Princípios e práticas recomendadas de design do DCH

Esta página descreve os princípios de design e as práticas recomendadas para pacotes de driver compatíveis com DCH.

Princípios de design de DCH

Há três princípios de design a serem considerados para que um pacote de driver seja compatível com DCH:

  • Declarativo (D): instale o pacote de driver usando apenas diretivas INF declarativas. Não inclua co-instaladores ou funções RegisterDll.

  • Componentes (C): personalizações específicas da edição, específicas do OEM e opcionais para o pacote de driver são separadas do pacote de driver base. Como resultado, o pacote de driver base, que fornece apenas a funcionalidade principal do dispositivo, pode ser direcionado, de versão de pré-lançamento e atendido independentemente das personalizações.

  • Aplicativo de Suporte de Hardware (H): qualquer componente de interface do usuário associado a um pacote de driver deve ser empacotado como um HSA (Aplicativo de Suporte de Hardware) ou pré-instalado no dispositivo OEM. Um HSA é um aplicativo opcional específico do dispositivo que é emparelhado com um pacote de driver. O aplicativo pode ser um aplicativo de Plataforma Universal do Windows (UWP) ou Ponte de Desktop. Você deve distribuir e atualizar um HSA por meio da Microsoft Store. Para obter detalhes, consulte HSA (Aplicativo de Suporte de Hardware): etapas para desenvolvedores de driver e HSA (aplicativo de suporte de hardware): etapas para desenvolvedores de aplicativos.

O acrônimo "DCH" refere-se aos princípios listados acima. Consulte a página Exemplo de pacote de driver compatível com DCH para ver como um exemplo de driver pode aplicar princípios de design de DCH.

Visão geral

Os pacotes de driver compatíveis com DCH contêm um arquivo INF e binários que instalam e são executados em edições baseadas em Plataforma Universal do Windows (UWP) do Windows. Eles também instalam e executam em outras edições do Windows 10 e 11 que compartilham um conjunto comum de interfaces.

Binários de driver compatíveis com DCH podem usar KMDF, UMDF 2 ou O WDM (Modelo de Driver do Windows).

Os pacotes de driver compatíveis com DCH consistem nas seguintes partes:

  • Um pacote de driver base
  • Pacotes de componentes opcionais
  • Um aplicativo de suporte de hardware opcional

O pacote de driver base contém toda a funcionalidade principal e o código compartilhado. Os pacotes de componentes opcionais podem conter personalizações e configurações adicionais.

Normalmente, um fabricante de dispositivo ou um IHV (fornecedor independente de hardware) grava o pacote de driver base. Em seguida, um construtor de sistema ou fabricante de equipamento original (OEM) fornece todos os pacotes de componentes opcionais.

Depois que um IHV tiver certificado o pacote de driver base, ele poderá ser implantado em todos os sistemas OEM. Como um pacote de driver base pode ser usado em todos os sistemas que compartilham uma parte de hardware, a Microsoft pode testar o pacote de driver base amplamente por meio da versão de pré-lançamento do Windows Insider, em vez de limitar a distribuição a computadores específicos.

O OEM valida apenas as personalizações opcionais que fornece para o sistema OEM.

Requisitos

Para criar um pacote de driver que siga os princípios de design do DCH, siga estas etapas:

  • Crie um arquivo INF para o pacote de driver:
    1. Examine a lista de seções e diretivas inf válidas em pacotes de driver universais.
    2. Use a ferramenta InfVerif para verificar se o arquivo INF do pacote de driver segue os requisitos declarativos (D). Ele deve passar infverif /k.
  • Verifique se todos os pacotes de componentes opcionais que não contêm a funcionalidade principal do driver estão separados do pacote de driver base.
  • Os aplicativos de suporte de hardware associados ao seu pacote de driver devem ser distribuídos por meio da Microsoft Store.

Práticas recomendadas

  • Se você estiver usando o WDK (Kit de Driver do Windows) com o Visual Studio mais recente disponível, defina o valor da Plataforma de Destino nas propriedades do projeto do driver como Universal. Isso adiciona automaticamente as bibliotecas corretas e executa a validação adequada do INF e o ApiValidator como parte do build. Para fazer isso:

    1. Abra as propriedades do projeto do driver.
    2. Selecione Configurações do Driver.
    3. Use o menu suspenso para definir a Plataforma de Destino como Universal.
  • Se o INF executar qualquer ação de configuração personalizada que dependa da plataforma de destino, considere separá-las em um INF de extensão. Você pode atualizar uma extensão INF independentemente do pacote de driver base para torná-la mais robusta e a serviço. Para obter mais informações, consulte Usando um arquivo INF de extensão.

  • Se você quiser fornecer um aplicativo que funcione com seu dispositivo, inclua um aplicativo de suporte de hardware. Para obter mais informações, consulte HSA (Aplicativo de Suporte de Hardware): etapas para desenvolvedores de driver. Um OEM pode pré-carregar esse aplicativo usando DISM – Gerenciamento e Manutenção de Imagens de Implantação. Ou os usuários podem baixar manualmente o aplicativo da Microsoft Store.