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

Esta página descreve os princípios de design e as práticas recomendadas para Windows Drivers.

Princípios de design de DCH

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

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

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

  • Aplicativo de Suporte de Hardware (H): qualquer componente de interface do usuário associado a um driver do Windows deve ser empacotado como um HSA (Aplicativo de Suporte a Hardware) ou pré-instalado no dispositivo OEM. Um HSA é um aplicativo opcional específico do dispositivo que é emparelhado com um driver. O aplicativo pode ser uma UWP (Plataforma de Windows Universal)ou Ponte de Desktop aplicativo. Você deve distribuir e atualizar um HSA por meio do Microsoft Store. Para obter detalhes, consulte HSA (Aplicativo de Suporte a 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 DCH.

Visão geral

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

Binários de driver compatíveis com DCH podem usar KMDF,UMDF 2ou o WDM (modelo de driver Windows).

Os drivers compatíveis com DCH consistem nas seguintes partes:

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

O 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 do dispositivo ou um IHV (fornecedor independente de hardware), grava o driver base. Em seguida, um construtor de sistema ou OEM (fabricante original de equipamentos), 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 do Windows Insider Flighting, em vez de limitar a distribuição a máquinas específicas.

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

Requisitos

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

  • Crie um arquivo INF para o driver:
    1. Revise a lista de seções e diretivas INFque são válidas Windows Pacotes de driver .
    2. Use a ferramenta InfVerif para verificar se o arquivo INF do pacote de driver segue os requisitos declarativos (D) para Windows Drivers. Ele deve passar infverif /w .
  • Verifique se 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 pacote de driver devem ser distribuídos por meio do Microsoft Store.

Melhores práticas

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

    1. Abra as propriedades do projeto de driver.
    2. Selecione Driver Configurações.
    3. Use o menu suspenso para definir a Plataforma de Destino como .
  • 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 serviceável. 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 UWP. Para obter mais informações, consulte HSA (Aplicativo de Suporte a Hardware): Etapas para desenvolvedores de driver. Um OEM pode pré-carregar um aplicativo usando DISM – Gerenciamento e Manutenção de Imagens de Implantação. Ou os usuários podem baixar manualmente o aplicativo do Microsoft Store.

  • Na seção DestinationDirs inf, de definir os diretórios de destino como dirid 13 para fazer com que o driver seja executado no armazenamento de driver. Essa configuração não funcionará para alguns dispositivos.