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.
Utilize o driver USB fornecido pela Microsoft (Usbser.sys) para os seus dispositivos de controlo da classe de dispositivo de comunicação (CDC). Use os drivers incluídos no Windows sempre que possível.
Importante
Este artigo é para fabricantes de dispositivos de controle CDC. Se for um cliente com problemas de USB, consulte Corrigir problemas de USB-C no Windows
Usbser.sys é implementado usando o Kernel-Mode Driver Framework. O driver suporta Plug and Play e recursos de gerenciamento de energia, como suspensão seletiva USB.
Os aplicativos da Plataforma Universal do Windows (UWP) podem usar as APIs fornecidas pelo namespace Windows.Devices.SerialCommunication , permitindo que os aplicativos conversem com dispositivos CDC.
Instalação Usbser.sys
Carregue o driver in-box fornecido pela Microsoft (Usbser.sys) para seu dispositivo de controle CDC e de comunicações.
Observação
Se estiver a tentar instalar um driver de classe de dispositivo USB incluído no Windows, não precisa de transferir o driver. O Windows instala esses drivers automaticamente. Se o Windows não instalar o controlador, contacte o fabricante do dispositivo. Para obter uma lista de drivers de classe de dispositivo USB incluídos no Windows, consulte Drivers de classe de dispositivo USB incluídos no Windows.
Usbser.inf está localizado no %Systemroot%\INF diretório. Este arquivo de informações de instalação (INF) carrega Usbser.sys como objeto de dispositivo funcional (FDO) na pilha de dispositivos. Se o seu dispositivo pertencer à classe de dispositivos de controle CDC e comunicações, Usbser.sys será carregado automaticamente. Você não precisa escrever seu próprio arquivo INF para fazer referência ao driver. O Windows carrega o driver com base em uma correspondência de ID compatível, semelhante a outros drivers de classe de dispositivo USB incluídos no Windows.
USB\Class_02
USB\Class_02&SubClass_02
Para carregar Usbser.sys automaticamente, defina o código de classe como 02 e o código de subclasse como 02 no Descritor de dispositivo. Com essa abordagem, você não precisa distribuir arquivos INF para seu dispositivo porque o sistema usa Usbser.inf. Para obter mais informações, consulte Definições de classe para dispositivos de comunicação 1.2.
Se o dispositivo especificar o código de classe 02, mas um código de subclasse diferente de 02, Usbser.sys não será carregado automaticamente. O gestor Plug and Play tenta encontrar um controlador. Se o Windows não encontrar um driver adequado, o dispositivo pode não ter um driver carregado. Talvez seja necessário carregar seu próprio driver ou escrever um arquivo INF que faça referência a outro driver in-box.
Se o dispositivo especificar códigos de classe e subclasse de 02 e você quiser carregar outro driver em vez de Usbser.sys, escreva um arquivo INF. No arquivo INF, especifique o ID de hardware do dispositivo e o driver a ser instalado.
Configurar suspensão seletiva para Usbser.sys
Usbser.sys suporta suspensão seletiva USB. Este driver permite que o dispositivo USB para serial conectado entre em um estado de baixa energia quando não estiver em uso, enquanto o sistema permanece no estado S0. Quando a comunicação com o dispositivo é retomada, o dispositivo sai do estado de suspensão e retoma o estado de trabalho. O recurso está desabilitado por padrão, mas pode ser habilitado e configurado definindo a entrada IdleUsbSelectiveSuspendPolicy sob esta chave do Registro:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\<hardware id>\<instance id>\Device Parameters
Para configurar os recursos de gerenciamento de energia do Usbser.sys, defina o parâmetro IdleUsbSelectiveSuspendPolicy como:
| Valor | Comportamento |
|---|---|
0x00000001 |
Ative a suspensão seletiva quando o dispositivo estiver inativo, ou seja, quando não houver transferências de dados ativas para ou do dispositivo. |
0x00000000 |
Ative a suspensão seletiva apenas quando não houver manípulos abertos para o dispositivo. |
Adicione essa entrada de duas maneiras:
Escreva um INF que faça referência ao INF de instalação e adicione a entrada no registo na secção HW.AddReg.
Descreva a entrada do registo em um descritor de funcionalidades do sistema operativo de propriedades avançadas. Adicione uma seção de propriedade personalizada que defina o campo bPropertyName como uma cadeia de caracteres Unicode:
IdleUsbSelectiveSuspendPolicy. Defina o wPropertyNameLength como 62 bytes. Defina o campo bPropertyData como0x00000001ou0x00000000. Os valores de propriedade armazenam-se como inteiros de 32 bits little-endian.Para obter mais informações, consulte Descritores do sistema operacional Microsoft.
Desenvolver aplicativos do Windows para um dispositivo USB CDC
Um aplicativo do Windows envia solicitações para Usbser.sys usando o namespace Windows.Devices.SerialCommunication . O namespace define classes do Tempo de Execução do Windows que se comunicam com um dispositivo CDC USB por meio de uma porta serial ou uma abstração de uma porta serial. As classes permitem descobrir dispositivos seriais, ler e gravar dados e controlar propriedades específicas de série para controle de fluxo, como definir a taxa de transmissão e os estados de sinal.