Criando e carregando um driver WDF

Este tópico descreve como selecionar um sistema operacional de destino e uma versão da estrutura para um projeto de driver no Visual Studio.

Para determinar se você precisa incluir componentes de estrutura redistribuíveis em seu pacote de driver, consulte Componentes da Estrutura Redistribuível.

Qual versão da estrutura devo usar?

  • Para direcionar o Windows XP, use o WDF 1.9 ou anterior.
  • Para direcionar o Windows Vista, Windows 7 ou Windows 8, use o WDF 1.11 ou anterior.
  • Para direcionar Windows 8.1, use KMDF 1.13 ou anterior ou UMDF 1.x ou UMDF 2.0.
  • Para direcionar Windows 10 versão 1507, use KMDF 1.15 ou anterior ou UMDF 1.x ou UMDF 2.15 ou anterior.

Para obter informações detalhadas sobre as versões KMDF e UMDF, consulte Histórico de versão do KMDF e histórico de versão do UMDF.

Como fazer definir as versões no Visual Studio?

Se você estiver criando seu projeto de driver para a versão mais recente do Windows e a versão mais recente do KMDF ou UMDF, poderá manter os padrões e ignorar esta etapa.

Caso contrário, siga estas etapas:

  • Clique com o botão direito do mouse na solução e selecione Configuration Manager. Defina Configuração do Projeto como o valor desejado (por exemplo , Depurar).
  • Clique com o botão direito do mouse no projeto do driver e selecione Propriedades. Abra Configuration Properties-Driver> Settings-Driver> Model. Altere o valor kmdf versão secundária (versão de destino) ou umdf versão secundária (versão de destino) no modelo de driver configurações para o valor desejado. Para obter informações sobre a versão secundária do KMDF (mínimo necessário) e a versão secundária do UMDF (mínimo necessário), consulte Especificando o mínimo necessário.

Você pode usar o WDK (Windows Driver Kit) fornecido com Windows 10 para criar drivers KMDF 1.9-1.29, bem como drivers UMDF 1.9-2.29.

Para obter informações detalhadas sobre as versões KMDF e UMDF, consulte Histórico de versão do KMDF e histórico de versão do UMDF.

Vinculação e carregamento

Quando você cria um projeto do WDF (Windows Driver Frameworks) no Microsoft Visual Studio, o MSBuild vincula seu driver à biblioteca de estrutura apropriada, ao carregador da biblioteca e a um arquivo stub, todos incluídos no WDK. (A biblioteca e o carregador também estão incluídos no co-instalador da estrutura para que, se necessário, você possa distribuí-los com seu pacote de driver.)

O arquivo stub contém uma rotina especial de ponto de entrada: FxDriverEntry. O MSBuild define a rotina FxDriverEntry do stub como o ponto de entrada inicial para drivers baseados em estrutura.

Quando o sistema operacional carrega um driver baseado em estrutura, ele também carrega o arquivo stub e o carregador da biblioteca. Em seguida, o sistema chama a rotina FxDriverEntry do arquivo stub. Em seguida, essa rotina chama o carregador. O carregador determina a versão da biblioteca de estrutura que o driver requer e, em seguida, carrega a versão correta da biblioteca como um serviço no modo kernel (se ela ainda não estiver carregada). Por fim, a biblioteca chama a rotina driverEntry do driver.