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.
WinUSB consiste em dois componentes principais:
- Winusb.sys é um driver em modo kernel que pode ser instalado como um driver de filtro ou de função, acima dos drivers de protocolo na pilha de dispositivos de modo kernel de um dispositivo USB.
- Winusb.dll é uma DLL de modo de usuário que expõe funções WinUSB. Os aplicativos podem usar essas funções para se comunicar com Winusb.sys quando ele é instalado como driver de função de um dispositivo.
Para dispositivos que não exigem um driver de função personalizado, Winusb.sys pode ser instalado na stack no modo kernel do dispositivo como o driver de função. Os processos de modo de usuário podem se comunicar com Winusb.sys usando um conjunto de solicitações de controle de E/S do dispositivo ou chamando funções WinUSB.
A figura a seguir mostra uma pilha de drivers USB que contém várias instâncias de Winusb.sys.
A figura anterior mostra um exemplo de configuração WinUSB que implementa três classes de interface de dispositivo, cada uma das quais tem uma única interface de dispositivo registrado:
- A instância 1 do Winusb.sys registra a interface de dispositivo A, que suporta um driver de modo de usuário (Usboem.dll).
- A instância 2 do Winusb.sys registra a interface de dispositivo B, que suporta um driver de modo de usuário para um scanner (Usbscan.exe) que se comunica com Winusb.dll usando um serviço do sistema (SVCHOST).
- A instância 3 do Winusb.sys regista a interface C do dispositivo, que suporta um utilitário de atualização de firmware (Usbfw.exe).
Há exatamente uma instância carregada de Winusb.sys. Um objeto de dispositivo físico (DOP) pode representar um dispositivo não composto (instância 1 no diagrama) ou pode representar uma interface ou coleção de interface em um dispositivo composto (instâncias 2 e 3). Para dispositivos da classe USB (WMCDC - classe de dispositivo de comunicação móvel sem fio), um DOP pode até representar diversas coleções de interfaces. (Para obter mais informações sobre PDOs para dispositivos WMCDC, consulte Suporte para a classe de dispositivo de comunicação móvel sem fio.)
Qualquer aplicativo de modo de usuário pode se comunicar com a pilha USB carregando a biblioteca de vínculo dinâmico WinUSB (Winusb.dll) e chamando as funções WinUSB que são expostas por este módulo.