Partilhar via


Escolha um modelo de driver

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

  • Controlador de funções do dispositivo
  • Driver de filtro de dispositivo
  • Controlador de software
  • Driver de filtro do sistema de arquivos
  • Driver do sistema de arquivos

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

Escolher um modelo de driver para um driver de função para 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 motorista inteiramente? Se você deve escrever um driver de função, qual é o melhor modelo de driver para usar? 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 têm modelos de minidrivers. Em um modelo de minidriver, o driver de dispositivo consiste em duas partes: uma que lida com tarefas gerais e outra que lida com 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 compartilham o prefixo mini. Aqui estão alguns dos nomes usados em modelos de minidriver:

  • Driver de miniporta de vídeo
  • Driver de miniporta de áudio
  • Driver de miniclasse para bateria
  • Driver de protocolo Bluetooth
  • Minidriver HID
  • Minidriver WIA
  • Driver de miniporta NDIS
  • Driver de miniporta de armazenamento
  • Minidriver de streaming

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

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 Kernel-Mode Driver Framework (KMDF); 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 a tecnologia específica do seu dispositivo. Se a tecnologia do seu 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 se deve usar o UMDF, KMDF ou o WDM (Windows Driver Model).

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 colocados 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 de função e também pode ter os drivers de filtro. Para uma discussão sobre drivers de função e drivers de filtro, veja O que é um driver? e Nós de dispositivo e pilhas de dispositivos.

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 em Tecnologias de dispositivo e driver. Verifique se a documentação da sua tecnologia de dispositivo específica tem alguma orientação sobre a escolha de um modelo de driver de filtro. Se a documentação da tecnologia do seu dispositivo não oferecer essa orientação, considere primeiro usar UMDF como 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 o KMDF como modelo de driver. No caso raro em que o driver precisa acessar estruturas de dados não disponíveis através do KMDF, use o WDM como modelo de driver.

Escolhendo um modelo de driver para um driver de software

Um driver que não está associado a um dispositivo é chamado de driver de software . Para uma discussão sobre controladores 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 a dados protegidos do sistema operacional. Para obter informações sobre os modos de processador, consulte Modo de usuário e 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. Em vez disso, pode concentrar-se nas tarefas principais do seu motorista. Com o KMDF, não precisa de se preocupar com PnP e gestão de energia, porque a estrutura lida com PnP e gestão de energia por si. Com o modelo herdado do Windows NT, você não precisa se preocupar com PnP e energia porque os serviços de modo kernel operam em um ambiente que é completamente independente do PnP e do gerenciamento de energia.

Nossa recomendação é que você use o KMDF, especialmente se já estiver familiarizado com ele. Se você quiser que seu driver seja completamente independente de PnP e 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, você não pode usar o modelo herdado do Windows NT; você deve usar KMDF.

Nota: No caso muito raro em que você precisa escrever um driver de software que esteja ciente de eventos PnP ou de energia, e seu driver precisa acessar dados que não estão disponíveis através do KMDF, você deve usar o WDM.

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

Para obter ajuda com a escolha de um modelo para um driver de sistema de arquivos, consulte Exemplos de driver de sistema de arquivos. Observe que os drivers de 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 com a escolha de um modelo para um driver de filtro do sistema de arquivos, consulte Minifiltros do sistema de arquivos e Filtros do sistema de arquivos.

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

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

Kernel-Mode Framework de Drivers

User-Mode Estrutura de Controladores