Compartilhar via


Escolhendo 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:

  • 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 inteiramente? Se você precisar escrever um driver de função, 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 mais sobre quais modelos de driver estão disponíveis para seu dispositivo.

Algumas das tecnologias individuais têm modelos de 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 dispositivo e driver têm um modelo de minidriver dedicado. A documentação de uma tecnologia específica pode aconselhar você a usar o KMDF (Kernel-Mode Driver Framework); a documentação de outra tecnologia pode aconselhar você a usar a UMDF (Estrutura de Driver do Modo de Usuário). 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 se deseja usar o UMDF, o KMDF ou o WDM (Modelo de Driver do Windows).

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 de sua tecnologia de dispositivo específica tem 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 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 extremamente raro de o driver precisar de acesso a estruturas de dados não disponíveis por meio 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 obter uma discussão sobre drivers de software, consulte o tópico 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 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 de Windows NT herdado. Com o KMDF e o modelo de Windows NT herdado, você pode escrever seu driver sem se preocupar com Plug and Play (PnP) e o gerenciamento de energia. Em vez disso, você pode se concentrar nas principais tarefas do driver. Com o KMDF, você não precisa se preocupar com PnP e potência porque a estrutura lida com PnP e potência para você. Com o modelo de Windows NT herdado, você não precisa se preocupar com PnP e energia porque os serviços de modo kernel operam em um ambiente 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 o driver seja completamente independente do PnP e do gerenciamento de energia, use o modelo de Windows NT herdado. 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 de Windows NT herdado; você deve usar KMDF.

Nota No caso muito raro de você precisar escrever um driver de software que esteja ciente de PnP ou eventos 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 do sistema de arquivos. Observe que os drivers do sistema de arquivos podem ser bastante complexos e podem exigir conhecimento de conceitos avançados para o desenvolvimento de driver.

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 do driver do modo Kernel

Estrutura de driver do modo de usuário