Compartilhar via


Tipos de drivers do Windows

Há dois tipos básicos de drivers do Microsoft Windows:

  • Os drivers de modo de usuário são executados no modo de usuário e normalmente fornecem uma interface entre um aplicativo Win32 e drivers no modo kernel ou outros componentes do sistema operacional.

    Por exemplo, no Windows Vista, todos os drivers de impressora são executados no modo de usuário. Para obter mais informações sobre componentes de driver de impressora, consulte Introdução à impressão.

  • Os drivers de modo kernel são executados no modo kernel como parte do executivo, que consiste em componentes do sistema operacional no modo kernel que gerenciam E/S, Plug and Play memória, processos e threads, segurança e assim por diante. Os drivers no modo kernel normalmente são colocados em camadas. Em geral, drivers de nível superior normalmente recebem dados de aplicativos, filtram os dados e os transmitem para um driver de nível inferior que dá suporte à funcionalidade do dispositivo.

    Alguns drivers de modo kernel também são drivers WDM, que estão em conformidade com o WDM ( Modelo de Driver do Windows ). Todos os drivers WDM dão suporte a Plug and Play e gerenciamento de energia. Os drivers WDM são compatíveis com a origem (mas não compatíveis com binários) no Windows 98/Me e no Windows 2000 e em sistemas operacionais posteriores.

    Assim como o próprio sistema operacional, os drivers de modo kernel são implementados como componentes modulares discretos que têm um conjunto bem definido de funcionalidades necessárias. Todos os drivers de modo kernel fornecem um conjunto de rotinas de driver padrão definidas pelo sistema.

A figura a seguir divide os drivers do modo kernel em vários tipos.

diagrama ilustrando tipos de drivers no modo kernel.

Conforme mostrado na figura, há três tipos básicos de drivers no modo kernel em uma pilha de driver: de nível mais alto, intermediário e de nível mais baixo. Cada tipo difere apenas ligeiramente na estrutura, mas muito na funcionalidade:

  1. Drivers de nível mais alto. Os drivers de nível mais alto incluem FSDs (drivers do sistema de arquivos) que dão suporte a sistemas de arquivos, como:

    • NTFS

    • FAT (tabela de alocação de arquivo)

    • CDFS (sistema de arquivos CD-ROM)

    Os drivers de nível mais alto sempre dependem do suporte de drivers subjacentes de nível inferior, como drivers de função de nível intermediário e motoristas de ônibus de hardware de nível mais baixo.

  2. Drivers intermediários, como um disco virtual, espelho ou um driver de classe específico do tipo de dispositivo. Os drivers intermediários dependem do suporte de drivers de nível inferior subjacentes. Os drivers intermediários são subdivididos da seguinte maneira:

    • Os drivers de função controlam dispositivos periféricos específicos em um barramento de E/S.

    • Os drivers de filtro inserem-se acima ou abaixo dos drivers de função.

    • Os drivers de barramento de software apresentam um conjunto de dispositivos filho aos quais drivers de classe, função ou filtro de nível mais alto ainda podem se anexar.

      Por exemplo, um driver que controla um adaptador multifuncional com um conjunto integrado de dispositivos heterogêneos é um driver de barramento de software.

    • Qualquer driver de classe fornecido pelo sistema que exporta uma interface de classe/miniclass definida pelo sistema é, na verdade, um driver intermediário com um ou mais drivers de miniclasse vinculados (às vezes chamados de minidrivers). Cada par de classe/minidriver vinculado fornece funcionalidade equivalente à de um driver de função ou de um driver de barramento de software.

  3. Os drivers de nível mais baixo controlam um barramento de E/S ao qual os dispositivos periféricos estão conectados. Os drivers de nível mais baixo não dependem de drivers de nível inferior.

    • Os drivers de barramento de hardware são fornecidos pelo sistema e geralmente controlam ônibus de E/S configuráveis dinamicamente.

      Os motoristas de barramento de hardware trabalham com o gerenciador de Plug and Play para configurar e reconfigurar os recursos de hardware do sistema, para todos os dispositivos filho conectados aos barramentos de E/S que o driver controla. Esses recursos de hardware incluem mapeamentos para a memória do dispositivo e solicitações de interrupção (IRQs). (Os drivers de barramento de hardware subsume parte da funcionalidade que o componente HAL forneceu em versões do sistema operacional baseado em Windows NT anteriores ao Windows 2000.)

    • Drivers herdados que controlam diretamente um dispositivo físico são drivers de nível mais baixo.