Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Utilice el controlador USB proporcionado por Microsoft (Usbser.sys) para los dispositivos de la clase de control de dispositivos de comunicación (CDC). Use los controladores incluidos en Windows siempre que sea posible.
Importante
Este artículo es para fabricantes de dispositivos de control CDC. Si es un cliente que experimenta problemas con USB, consulte Corregir problemas de USB-C en Windows.
Usbser.sys se implementa mediante Kernel-Mode Driver Framework. El controlador admite Plug and Play y características de administración de energía, como suspensión selectiva USB.
Las aplicaciones de la Plataforma universal de Windows (UWP) pueden usar las API proporcionadas por el espacio de nombres Windows.Devices.SerialCommunication , lo que permite a las aplicaciones comunicarse con dispositivos CDC.
instalación de Usbser.sys
Cargue el controlador proporcionado por Microsoft (Usbser.sys) para su dispositivo de comunicaciones y control CDC.
Nota:
Si intenta instalar un controlador de clase de dispositivo USB incluido en Windows, no es necesario descargar el controlador. Windows instala estos controladores automáticamente. Si Windows no instala el controlador, póngase en contacto con el fabricante del dispositivo. Para obtener una lista de los controladores de clase de dispositivo USB incluidos en Windows, consulte Controladores de clase de dispositivo USB incluidos en Windows.
Usbser.inf se encuentra en el %Systemroot%\INF
directorio . Este archivo de información de configuración (INF) carga Usbser.sys como objeto de dispositivo funcional (FDO) en la pila de dispositivos. Si el dispositivo pertenece a la clase de dispositivo de control CDC y de comunicaciones, Usbser.sys se carga automáticamente. No es necesario escribir su propio archivo INF para hacer referencia al controlador. Windows carga el controlador en función de una coincidencia de identificador compatible, similar a otros controladores de clase de dispositivo USB incluidos en Windows.
USB\Class_02
USB\Class_02&SubClass_02
Para cargar Usbser.sys automáticamente, establezca el código de clase en 02 y el código de subclase en 02 en el Descriptor de dispositivo. Con este enfoque, no es necesario distribuir archivos INF para el dispositivo porque el sistema usa Usbser.inf. Para obtener más información, vea Definiciones de clase para dispositivos de comunicación 1.2.
Si el dispositivo especifica el código de clase 02, pero un código de subclase distinto de 02, Usbser.sys no se carga automáticamente. El administrador de Plug and Play intenta encontrar un controlador. Si Windows no encuentra un controlador adecuado, es posible que el dispositivo no tenga un controlador cargado. Es posible que tenga que cargar su propio controlador o escribir un archivo INF que haga referencia a otro controlador integrado.
Si el dispositivo especifica códigos de clase y subclase de 02, y quiere cargar otro controlador en lugar de Usbser.sys, escriba un archivo INF. En el archivo INF, especifique el identificador de hardware del dispositivo y el controlador que se va a instalar.
Configuración de la suspensión selectiva para Usbser.sys
Usbser.sys admite Suspensión Selectiva USB. Este controlador permite que el dispositivo USB a serie conectado entre en un estado de baja potencia cuando no esté en uso, mientras que el sistema permanece en estado S0. Cuando se reanuda la comunicación con el dispositivo, el dispositivo deja el estado de suspensión y reanuda el estado de trabajo. La característica está deshabilitada de forma predeterminada, pero se puede habilitar y configurar estableciendo la entrada IdleUsbSelectiveSuspendPolicy en esta clave del Registro:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\<hardware id>\<instance id>\Device Parameters
Para configurar las características de administración de energía de Usbser.sys, establezca el parámetro IdleUsbSelectiveSuspendPolicy en:
Importancia | Comportamiento |
---|---|
0x00000001 |
Ingrese en modo de suspensión selectiva cuando el dispositivo esté en reposo; es decir, cuando no se realicen transferencias de datos hacia o desde el dispositivo. |
0x00000000 |
Ingresa a la suspensión selectiva solo cuando no haya manejadores abiertos para el dispositivo. |
Agregue esa entrada de una de estas dos maneras:
Escriba un INF que haga referencia al INF de instalación y agregue la entrada del Registro en la sección HW.AddReg.
Describa la entrada del Registro en un descriptor de propiedades extendidas de características del sistema operativo. Agregue una sección de propiedad personalizada que establezca el campo bPropertyName en una cadena Unicode:
IdleUsbSelectiveSuspendPolicy
. Establezca wPropertyNameLength en 62 bytes. Establezca el campo bPropertyData en0x00000001
o0x00000000
. Los valores de propiedad se almacenan como enteros de 32 bits en formato little-endian.Para obtener más información, consulte Descriptores de SO de Microsoft.
Desarrollo de aplicaciones de Windows para un dispositivo CDC USB
Una aplicación de Windows envía solicitudes a Usbser.sys mediante el espacio de nombres Windows.Devices.SerialCommunication . El espacio de nombres define las clases de Windows Runtime que se comunican con un dispositivo CDC USB a través de un puerto serie o una abstracción de un puerto serie. Las clases permiten detectar dispositivos serie, leer y escribir datos y controlar las propiedades específicas de serie para el control de flujo, como establecer la velocidad de baudios y los estados de señal.