Escolha um modelo de driver

O Microsoft Windows fornece uma variedade de modelos de driver que você pode usar para gravar 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:

  • Driver de função do dispositivo
  • Driver de filtro de dispositivo
  • Driver 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 de 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 completamente? 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 para saber quais modelos de driver estão disponíveis para seu dispositivo.

Algumas das tecnologias individuais têm modelos minidriver. 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:

  • Exibir driver de miniporta
  • Driver de miniporta de áudio
  • Driver de miniclasse de 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 minidriver, consulte Minidrivers e pares de drivers.

Nem todas as tecnologias listadas em Tecnologias de dispositivos e drivers têm 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 dispositivo tiver um modelo de minidriver, você deverá usar o modelo de minidriver. Caso contrário, siga as recomendações na documentação específica da tecnologia sobre se deve usar o UMDF, KMDF ou o WDM (Windows Driver Model).

Escolhendo 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 drivers de filtro. Para obter 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 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 tecnologia do seu dispositivo específico tem alguma orientação sobre a escolha de um modelo de driver de filtro. Se a documentação da tecnologia do dispositivo não oferecer essa orientação, considere primeiro usar o 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 seu modelo de driver. No caso raro em que seu driver precisa 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 driver para um driver de software

Um driver que não está associado a um dispositivo é chamado de driver de software. Para obter 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 modos de processador, consulte Modo de usuário e modo de 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, você pode se concentrar nas tarefas principais do seu motorista. Com o KMDF, você não precisa se preocupar com PnP e energia, porque a estrutura 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 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 precise acessar 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 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 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 com a escolha de um modelo para um driver de filtro do sistema de arquivos, consulte Drivers de minifiltro 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.

Estrutura de driver de modo kernel

Estrutura de driver de modo de usuário