Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Esta seção descreve um possível conjunto de drivers WDM para hardware USB para ilustrar as camadas de driver WDM.
A figura a seguir mostra um exemplo de configuração de hardware PnP para um joystick USB.
Nesta figura, o joystick USB se conecta a uma porta em um hub USB. O hub USB neste exemplo reside na placa de controlo USB host e está conectado à única porta na placa de controlo USB host. O controlador host USB se conecta a um barramento PCI. De uma perspetiva PnP, o hub USB, o controlador host USB e o barramento PCI são todos dispositivos de barramento porque cada um deles 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 na parte inferior da figura anterior, os drivers na pilha de exemplo incluem:
Um driver PCI que aciona o barramento PCI. Este é um motorista de ônibus PnP. O driver de barramento PCI é fornecido pela Microsoft com o sistema.
O driver de barramento para o controlador host USB é implementado como um par de driver de classe/miniclasse. A classe de controlador anfitrião USB e os drivers de miniclasse são fornecidos pela Microsoft com o sistema.
O controlador de barramento do hub USB que opera o hub USB. O driver do hub USB é fornecido com o sistema pela Microsoft.
Três drivers para o dispositivo de joystick; um deles é um par de classe/miniclasse.
O driver de função, o driver principal para o dispositivo joystick, é o par de drivers da classe HID / miniclass HID USB. (HID representa "Dispositivo de Interface Humana".) O driver de miniclasse USB HID suporta as especificidades de protocolo USB de dispositivos HID, dependendo da DLL do driver de classe HID para suporte geral a HID.
Um driver de função pode ser específico para um dispositivo específico, ou, como no caso do HID, um driver de função pode atender a um grupo de dispositivos. Neste exemplo, o par de drivers da classe HID/miniclasse HID USB suporta qualquer dispositivo compatível com HID no sistema num barramento USB. Um driver de classe HID e drivers de miniclasse HID 1394 serviriam 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 (o par de driver de classe HID/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 dispositivo de rato.
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 de usuário e o aplicativo não são drivers, mas são mostrados para completude.