Compartilhar via


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

Este artigo descreve os princípios de design e as práticas recomendadas para pacotes de driver compatíveis com DCH. DCH significa Declarativo (D), Componentizado (C) e Aplicativo de Suporte de Hardware (H).

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: Instale o pacote de driver usando apenas diretivas declarativas INF. Não inclua coinstallers ou funções RegisterDll.

  • Componentizado: personalizações específicas da edição, específicas do OEM e personalizações opcionais ao 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, voado e atendido independentemente das personalizações.

  • HSA (Aplicativo de Suporte de Hardware): qualquer componente de interface do usuário associado a um pacote de driver deve ser empacotado como um HSA ou pré-instalado no dispositivo OEM. Um HSA é um aplicativo opcional específico do dispositivo emparelhado com um pacote de driver. O aplicativo pode ser uma UWP (Plataforma Universal do Windows) ou um aplicativo Desktop Bridge criado com um pacote MSIX do seu código. Você deve distribuir e atualizar um HSA por meio da Microsoft Store. Para obter mais informações, consulte HSA: Etapas para desenvolvedores de drivers e HSA: Etapas para desenvolvedores de aplicativos.

Para ver como um exemplo de driver pode aplicar princípios de design de DCH, consulte o exemplo de pacote de driver compatível com DCH.

Visão geral do DCH

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 UWP do Windows. Eles também instalam e são executados em outras edições do Windows 10 e 11 que compartilham um conjunto comum de interfaces.

Os binários de driver compatíveis com DCH podem usar Kernel-Mode DRIVER Framework (KMDF), User-Mode Driver Framework 2 (UMDF) ou o Modelo de Driver do Windows (WDM).

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

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

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 outras configurações.

Normalmente, um fabricante de dispositivo ou um IHV (fornecedor de hardware independente) grava o pacote de driver base. Em seguida, um construtor de sistemas ou OEM (fabricante de equipamentos original) fornece pacotes de componente opcionais.

Depois que um IHV certifica o pacote de driver base, ele pode 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. A Microsoft pode usar o sistema de distribuição "flighting" do Windows Insider, em vez de limitar a distribuição a computadores específicos.

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

Requisitos de DCH

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

  1. Crie um arquivo INF para seu 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). O pacote deve passar a verificação pelo infverif /k comando.

  2. Verifique se todos os pacotes de componentes opcionais que não contêm a funcionalidade principal do driver são separados do pacote de driver base.

  3. Os aplicativos de suporte a hardware associados ao pacote de driver devem ser distribuídos por meio da Microsoft Store.

Práticas recomendadas de DCH

Ao desenvolver para conformidade com a DCH, siga estas práticas recomendadas:

  • Se você usar o WDK (Windows Driver Kit) com a versão mais recente do Visual Studio, defina o valor da Plataforma de Destino nas propriedades do projeto do driver como Universal. Essa configuração adiciona automaticamente as bibliotecas corretas e executa a validação INF adequada e o ApiValidator como parte do processo de compilação. Para concluir essa tarefa, siga estas etapas:

    1. Abra as propriedades do projeto do driver.
    2. Selecione Configurações de Driver.
    3. Use o menu suspenso para definir o valor da Plataforma de Destino como Universal.
  • Se o INF executar qualquer ação de configuração personalizada que dependa da plataforma de destino, considere separar as ações 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 utilizável. Para obter mais informações, consulte Como usar um arquivo INF de extensão.

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