Compartilhar via


Escolha um modelo de controlador

O Windows da Microsoft fornece uma variedade de modelos de driver que você pode usar para escrever drivers. A estratégia para a escolha do melhor modelo de driver depende do tipo de driver que você planeja escrever. Aqui estão as opções:

  • Driver de função do dispositivo
  • Driver de filtro de dispositivo
  • Controlador de software
  • Driver de filtro do sistema de arquivos
  • Driver do sistema de arquivos

Para obter uma discussão sobre as diferenças entre os vários tipos de drivers, consulte O que é um driver? e Nós de dispositivo e pilhas de dispositivos. As seções a seguir explicam como escolher um modelo para cada tipo de driver.

Escolhendo um modelo de driver para um driver de função do dispositivo

Ao projetar um dispositivo de hardware, uma das primeiras coisas a considerar é se você precisa escrever um driver de função. Faça as seguintes perguntas:

Você pode evitar escrever um driver inteiramente? Se você precisar escrever um driver de funções, qual é o melhor modelo de driver a ser usado? Para responder a essas perguntas, determine onde seu dispositivo se encaixa na lista de tecnologias descritas em tecnologias de dispositivo e driver. Consulte a documentação dessa tecnologia específica para determinar se você precisa escrever um driver de função e saber quais modelos de driver estão disponíveis para seu dispositivo.

Algumas das tecnologias individuais possuem modelos de minidriver. Em um modelo de minidriver, o driver do dispositivo consiste em duas partes: uma que manipula tarefas gerais e outra que manipula tarefas específicas do dispositivo. Normalmente, a Microsoft grava a parte geral e o fabricante do dispositivo grava a parte específica do dispositivo. As partes específicas do dispositivo têm uma variedade de nomes, a maioria dos quais compartilha o prefixo 'mini'. Aqui estão alguns dos nomes usados em modelos de minidriver:

  • Exibir driver de miniporta
  • Driver de miniport de áudio
  • Controlador de minicurso de bateria
  • Driver de protocolo Bluetooth
  • Minidriver HID
  • Minidriver WIA
  • Driver de miniporto NDIS
  • Driver de miniporto de armazenamento
  • Minidriver de streaming

Para obter uma visão geral dos modelos de minidriver, consulte Minidrivers e pares de driver.

Nem todas as tecnologias listadas em Tecnologias de dispositivo e driver possuem um modelo de minidriver dedicado. A documentação de uma tecnologia específica pode aconselhá-lo a usar o KMDF (Kernel-Mode Driver Framework); a documentação de outra tecnologia pode aconselhá-lo a usar o User-Mode Driver Framework (UMDF). O ponto chave é que você deve começar estudando a documentação para sua tecnologia de dispositivo específica. Se a tecnologia do dispositivo tiver um modelo de minidriver, você deverá usar o modelo de minidriver. Caso contrário, siga os conselhos na documentação específica da tecnologia sobre a possibilidade de usar o UMDF, KMDF ou o WDM (Modelo de Driver do Windows).

Escolher um modelo de driver para um driver de filtro de dispositivo

Frequentemente, vários drivers participam de uma única solicitação de E/S (como ler dados de um dispositivo). Os drivers são organizados em camadas em uma pilha, e a maneira convencional de visualizar a pilha é com o primeiro driver na parte superior e o último driver na parte inferior. A pilha tem um driver funcional e também pode ter drivers de filtro. Para uma discussão sobre drivers de função e drivers de filtro, consulte o que é um driver? e nós de dispositivo e pilhas de dispositivo.

Se você estiver se preparando para escrever um driver de filtro para um dispositivo, determine onde seu dispositivo se encaixa na lista de tecnologias descritas nas tecnologias de dispositivo e driver. Verifique se a documentação de sua tecnologia de dispositivo específica tem alguma orientação sobre como escolher um modelo de driver de filtro. Se a documentação da tecnologia do dispositivo não oferecer essas diretrizes, primeiro considere usar o UMDF como seu modelo de driver. Se o driver de filtro precisar de acesso a estruturas de dados que não estão disponíveis por meio do UMDF, considere usar KMDF como seu modelo de driver. No caso raro de o driver precisar de acesso a estruturas de dados não disponíveis por meio do KMDF, use o WDM como seu modelo de driver.

Escolhendo um modelo de controlador para um software

Um driver que não está associado a um dispositivo é chamado de driver de software. Para uma discussão sobre drivers de software, consulte o que é um driver?. Os drivers de software são úteis porque podem ser executados no modo kernel, o que lhes dá acesso aos dados protegidos do sistema operacional. Para obter informações sobre os modos de processador, consulte o modo de usuário e o modo kernel.

Para um driver de software, suas duas opções são KMDF e o modelo de driver herdado do Windows NT. Com o KMDF e o modelo herdado do Windows NT, você pode escrever seu driver sem se preocupar com Plug and Play (PnP) e gerenciamento de energia. Você pode se concentrar nas tarefas primárias do motorista. Com o KMDF, você não precisa se preocupar com PnP e energia porque o framework lida com PnP e energia para você. Com o modelo herdado do Windows NT, você não precisa se preocupar com PnP e energia porque os serviços no modo kernel operam em um ambiente totalmente independente do PnP e do gerenciamento de energia.

Nossa recomendação é que você use KMDF, especialmente se já estiver familiarizado com ele. Se você quiser que seu driver seja completamente independente do PnP e do gerenciamento de energia, use o modelo herdado do Windows NT. Se você precisar escrever um driver de software que esteja ciente de transições de energia ou eventos PnP, não poderá usar o modelo herdado do Windows NT; você deve usar KMDF.

Observação: no caso muito raro de você precisar escrever um driver de software que esteja ciente de eventos de energia ou PnP, e seu driver precise de acesso a dados que não estão disponíveis por meio do KMDF, você deve usar o WDM.

Escolhendo um modelo de driver para um driver do sistema de arquivos

Para obter ajuda com a escolha de um modelo para um driver do sistema de arquivos, consulte exemplos de driver do sistema de arquivos. Note que os drivers do sistema de arquivos podem ser complexos e podem exigir conhecimento de conceitos avançados para o desenvolvimento de drivers.

Escolhendo um modelo de driver para um driver de filtro do sistema de arquivos

Para obter ajuda na escolha de um modelo para um driver de filtro do sistema de arquivos, consulte Minifiltros do sistema de arquivos e Drivers de filtro do sistema de arquivos.

Escolhendo um modelo de driver para um driver de minifiltro do sistema de arquivos

Para obter ajuda para escolher um modelo para um driver de minifiltro do sistema de arquivos, consulte Drivers de Minifiltro do Sistema de Arquivos.