Tipos de drivers WDM

Há três tipos de drivers WDM: motoristas de ônibus, drivers de função e drivers de filtro.

  • Um motorista de ônibus dirige um dispositivo de barramento de E/S individual e fornece funcionalidade por slot que é independente do dispositivo. Os motoristas de ônibus também detectam e relatam dispositivos filho conectados ao ônibus.
  • Um driver de função conduz um dispositivo individual.
  • Um driver de filtro filtra solicitações de E/S para um dispositivo, uma classe de dispositivos ou um ônibus.

Nesse contexto, um barramento é qualquer dispositivo ao qual outros dispositivos físicos, lógicos ou virtuais são anexados; um barramento inclui ônibus tradicionais, como SCSI e PCI, bem como portas paralelas, portas serial e portas i8042.

É importante que os desenvolvedores de driver entendam os diferentes tipos de drivers WDM e saibam qual tipo de driver eles estão escrevendo. Por exemplo, se um driver manipula cada Plug and Play IRP e como lidar com esses IRPs depende de que tipo de driver está sendo escrito (driver de ônibus, driver de função ou driver de filtro).

A figura a seguir mostra a relação entre o motorista do barramento, o driver de função e os drivers de filtro de um dispositivo.

diagrama ilustrando possíveis camadas de driver.

Cada dispositivo normalmente tem um driver de ônibus para o barramento de E/S pai, um driver de função para o dispositivo e zero ou mais drivers de filtro para o dispositivo. Um design de driver que requer muitos drivers de filtro não gera um desempenho ideal.

Os drivers na figura anterior são os seguintes:

  1. Um motorista de ônibus atende um controlador de ônibus, um adaptador ou uma ponte. Os motoristas de ônibus são os motoristas necessários; há um motorista de ônibus para cada tipo de ônibus em um computador. A Microsoft fornece motoristas de ônibus para os ônibus mais comuns. IHVs e OEMs podem fornecer outros motoristas de ônibus.

  2. Um driver de filtro de barramento normalmente adiciona valor a um ônibus e é fornecido pela Microsoft ou por um OEM do sistema. Pode haver qualquer número de drivers de filtro de ônibus para um ônibus.

  3. Os drivers de filtro de nível inferior normalmente modificam o comportamento do hardware do dispositivo. Eles são opcionais e normalmente são fornecidos por IHVs. Pode haver qualquer número de drivers de filtro de nível inferior para um dispositivo.

  4. Um driver de função é o driver main para um dispositivo. Um driver de função normalmente é escrito pelo fornecedor do dispositivo e é necessário (a menos que o dispositivo esteja sendo usado no modo bruto).

  5. Os drivers de filtro de nível superior normalmente fornecem recursos de valor agregado para um dispositivo. Eles são opcionais e normalmente são fornecidos por IHVs.

Os tópicos a seguir descrevem os três tipos gerais de drivers WDM — motoristas de ônibus, drivers de função, drivers de filtro — em detalhes. Também está incluído um exemplo de camadas de driver WDM que usa drivers USB de exemplo.

Nesta seção