Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Esta seção descreve um possível conjunto de drivers WDM para hardware USB para ilustrar camadas de driver do WDM.
A figura a seguir mostra uma configuração de hardware PnP de exemplo para um joystick USB.
Nessa figura, o joystick USB se conecta a uma porta em um hub USB. O hub USB neste exemplo reside na placa controlador de host USB e está conectado à porta única na placa do controlador de host USB. O controlador de host USB conecta-se a um barramento PCI. Sob uma perspectiva PnP, o hub USB, o controlador de host USB e o barramento PCI consistem todos em dispositivos de barramento, pois cada um fornece portas. O joystick não é um dispositivo de barramento.
A figura a seguir mostra um conjunto de exemplos de drivers que podem ser carregados para o hardware do joystick USB na figura anterior.
Começando pela parte inferior da figura anterior, os drivers na pilha de exemplo incluem:
Um driver PCI que controla o barramento PCI. Este é um motorista de ônibus PnP. O driver de barramento PCI é fornecido com o sistema pela Microsoft.
O driver de barramento para o controlador de host USB é implementado como um par de drivers de classe/miniclasse. Os drivers da classe controladora de host USB e miniclasse são fornecidos com o sistema pela Microsoft.
O driver do hub USB que controla o hub. O driver do hub USB é fornecido com o sistema pela Microsoft.
Três drivers para o dispositivo joystick; um deles é um par de classe/miniclasse.
O driver funcional, que é o principal driver para o dispositivo joystick, é o par de driver de classe HID e driver de miniclasse USB HID. (HID representa "Dispositivo de Interface Humana".) O driver de miniclasse HID USB dá suporte à semântica específica de USB de dispositivos HID, contando com a DLL do driver de classe HID para suporte geral à HID.
Um driver de função pode ser específico para um dispositivo específico ou, como no caso de HID, um driver de função pode atender a um grupo de dispositivos. Neste exemplo, o par de drivers da miniclasse USB HID/driver da classe HID atende a qualquer dispositivo compatível com HID no sistema em um barramento USB. Um driver de classe HID e um driver de miniclasse HID 1394 atenderiam a qualquer dispositivo compatível com HID em um barramento 1394.
Um driver de função pode ser escrito pelo fornecedor do dispositivo ou pela Microsoft. Neste exemplo, o driver de função (driver da classe HID/driver da miniclasse HID USB) é escrito pela Microsoft.
Há dois drivers de filtro para o dispositivo joystick neste exemplo: um filtro de classe de nível superior que adiciona um recurso de botão macro e um filtro de dispositivo de nível inferior que permite que o joystick emule um mouse.
O filtro de nível superior é escrito por alguém que precisa filtrar a E/S do joystick e o driver de filtro de nível inferior é escrito pelo fornecedor do joystick.
Os clientes HID de modo kernel e de modo usuário e o aplicativo não são drivers, mas são mostrados para fins de completude.