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.
Use o driver USB fornecido pela Microsoft (Usbser.sys) para seus dispositivos de controle CDC (classe de dispositivo de comunicação e comunicações). Use os drivers incluídos no Windows sempre que possível.
Importante
Este artigo destina-se aos fabricantes de dispositivos de controle CDC. Se você 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 dá suporte ao Plug and Play e a recursos de gerenciamento de energia, como suspensão seletiva de USB.
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 do Usbser.sys
Carregue o driver nativo fornecido pela Microsoft (Usbser.sys) para suas comunicações e dispositivo de controle CDC.
Observação
Se você estiver tentando instalar um driver de classe de dispositivo USB incluído no Windows, não precisará baixar o driver. O Windows instala esses drivers automaticamente. Se o Windows não instalar o driver, entre em contato com 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. O arquivo de informações de instalação (INF) carrega Usbser.sys como o FDO (objeto de dispositivo funcional) na pilha de dispositivos. Se o dispositivo pertencer à classe de dispositivos de comunicações e controle CDC, 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 gerenciador Plug and Play tenta encontrar um driver. Se o Windows não encontrar um driver adequado, o dispositivo poderá não ter um driver carregado. Talvez seja necessário carregar seu próprio driver ou gravar 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 a ID de hardware do dispositivo e o driver a ser instalado.
Configurar a suspensão seletiva para Usbser.sys
Usbser.sys dá suporte à Suspensão Seletiva usb. Esse driver permite que o dispositivo USB para serial anexado entre em um estado de baixo consumo de energia quando não estiver em uso, enquanto o sistema permanece no estado S0. Quando a comunicação com o dispositivo é retomada, o dispositivo deixa o estado de suspensão e retoma o estado de trabalho. O recurso é 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 recursos de gerenciamento de energia de Usbser.sys, defina o parâmetro IdleUsbSelectiveSuspendPolicy como:
Valor | Comportamento |
---|---|
0x00000001 |
Insira a suspensão seletiva quando estiver ocioso, ou seja, quando não houver transferências de dados ativas de ou para o dispositivo. |
0x00000000 |
Insira a suspensão seletiva somente quando não houver manipuladores 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 do registro na seção HW.AddReg.
Descreva a entrada do registro em um descritor de recursos do sistema operacional de propriedades estendidas. Adicione uma seção de propriedade personalizada que define o campo bPropertyName como uma cadeia de caracteres Unicode:
IdleUsbSelectiveSuspendPolicy
. Defina o wPropertyNameLength como 62 bytes. Defina o campo bPropertyData como0x00000001
ou0x00000000
. Os valores de propriedade são armazenados como inteiros de 32 bits em formatação little-endian.Para obter mais informações, consulte Descritores do sistema operacional da 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 Windows Runtime que se comunicam com um dispositivo USB CDC por meio de uma porta serial ou uma abstração de uma porta serial. As classes permitem descobrir dispositivos serial, ler e gravar dados e controlar propriedades específicas de série para controle de fluxo, como definir a taxa de baud e os estados de sinal.