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.
A partir de Windows 10, versión 1703, se incluye un controlador USB Audio 2.0 con Windows. Está diseñado para admitir la clase de dispositivo USB Audio 2.0. El controlador es un miniport de clase de puerto audio WaveRT.
El controlador se denomina :usbaudio2.sys y el archivo inf asociado es usbaudio2.inf.
El controlador se identificará en el administrador de dispositivos como "Dispositivo de clase de audio USB 2". Este nombre se sobrescribirá con una cadena de producto USB, si está disponible.
El controlador se habilita automáticamente cuando un dispositivo compatible está conectado al sistema. Sin embargo, si existe un controlador de terceros en el sistema o Windows Update, ese controlador se instalará e invalidará el controlador de clase.
Arquitectura
El controlador usbaudio2.sys se ajusta a la arquitectura más amplia del audio USB de Windows, tal como se muestra.
Especificaciones USB relacionadas
Las siguientes especificaciones USB definen audio USB y se hace referencia a él en este artículo.
- USB-2 hace referencia a la especificación del bus serie universal, revisión 2.0
- ADC-2 hace referencia a la definición de clase de dispositivo USB para dispositivos de audio, versión 2.0.
- FMT-2 hace referencia a la especificación Formatos de datos de audio, Versión 2.0.
El USB-IF es un grupo de interés especial que mantiene la especificación oficial usb, las especificaciones de prueba y las herramientas.
Formatos de audio
El controlador admite los formatos que se enumeran a continuación. Se omitirá una configuración alternativa, que especifica otro formato definido en FMT-2 o un formato desconocido.
Formatos de tipo I (FMT-2 2.3.1):
- Formato PCM con 8..32 bits por muestra (FMT-2 2.3.1.7.1)
- Formato PCM8 (FMT-2 2 2.3.1.7.2)
- formato de IEEE_FLOAT (FMT-2 2.3.1.7.3)
Formatos de tipo III (FMT-2 2.3.3 y A.2.3):
- IEC61937_AC-3
- IEC61937_MPEG-2_AAC_ADTS
- IEC61937_DTS-I
- IEC61937_DTS-II
- IEC61937_DTS-III
- TYPE_III_WMA
Descripciones de características
En esta sección se describen las características del controlador USB Audio 2.0.
Topología de funcionalidad de audio
El controlador admite todos los tipos de entidad definidos en ADC-2 3.13.
Cada entidad de terminal debe tener una conexión de reloj válida en hardware compatible con USB Audio 2.0. La ruta de acceso del reloj puede incluir opcionalmente unidades del multiplicador de reloj y selector de reloj y debe terminar en una entidad de origen del reloj.
El controlador solo admite un origen de reloj único. Si un dispositivo implementa varias entidades de origen de reloj y un selector de reloj, el controlador usará el origen del reloj seleccionado de forma predeterminada y no modificará la posición del selector de reloj.
No se admite una unidad de procesamiento (ADC-2 3.13.9) con más de un pin de entrada.
No se admite una unidad de extensión (ADC-2 3.13.10) con más de un pin de entrada.
No se permiten rutas de acceso cíclicas en la topología.
Streaming de audio
El controlador admite los siguientes tipos de sincronización de puntos de conexión (USB-2 5.12.4.1):
- ENTRADA y salida asincrónicas
- Entradas y salidas sincrónicas
- Entradas y salidas adaptables
Para el caso OUT asincrónico, el controlador solo admite el feedback explícito. Un punto de retroalimentación debe implementarse en la configuración alternativa correspondiente de la interfaz AS. El controlador no admite comentarios implícitos.
Actualmente, hay compatibilidad limitada con dispositivos que usan un reloj compartido para varios puntos de conexión.
En el caso del IN adaptativo, el controlador no admite un punto de conexión de realimentación. Si este punto de conexión está presente en la configuración alternativa, se omitirá. El controlador controla la secuencia IN adaptable de la misma manera que una secuencia IN asincrónica.
El tamaño de los paquetes isócronos creados por el dispositivo debe estar dentro de los límites especificados en la sección 2.3.1.1 de FMT-2.0. Esto significa que la desviación del tamaño real del paquete con respecto al tamaño nominal no debe superar +/- una ranura de audio (ranura de audio = muestras por contador de canales).
Descriptores
Una función de audio debe implementar exactamente un descriptor de interfaz audioControl (ADC-2 4.7) y uno o varios descriptores de interfaz AudioStreaming (ADC-2 4.9). Una función con una interfaz de control de audio, pero no se admite ninguna interfaz de streaming.
El controlador admite todos los tipos de descriptor definidos en ADC-2, sección 4. Las subsecciones siguientes proporcionan comentarios sobre algunos tipos de descriptores específicos.
descriptor de interfaz AS Class-Specific
Para obtener más información sobre esta especificación, consulte ADC-2 4.9.2.
Un descriptor de interfaz AS debe comenzar con la configuración alternativa cero sin ningún punto de conexión (sin consumo de ancho de banda) y se debe especificar una configuración alternativa adicional en orden ascendente en hardware usb audio 2.0 compatible.
Se omitirá una configuración alternativa con un formato que no sea compatible con el controlador.
Cada configuración alternativa distinta de cero debe especificar un punto de conexión de datos isócrono y, opcionalmente, un punto de conexión de comentarios. No se admite una configuración alternativa distinta de cero sin ningún punto de conexión.
El campo bTerminalLink debe hacer referencia a una entidad terminal en la topología y su valor debe ser idéntico en todas las configuraciones alternativas de una interfaz AS.
El campo bFormatType del descriptor de interfaz AS debe ser idéntico a bFormatType especificado en el Descriptor de tipo de formato (FMT-2 2 2.3.1.6).
En el caso de los formatos Type I, debe establecerse exactamente un bit en uno en el campo bmFormats del descriptor de interfaz AS. De lo contrario, el controlador ignorará el formato.
Para ahorrar ancho de banda de bus, una interfaz AS puede implementar varias configuraciones alternativas con el mismo formato (en términos de bNrChannels y descriptor de tipo de formato AS), pero diferentes valores wMaxPacketSize en el descriptor del punto de conexión de datos isócronos. Para una frecuencia de muestreo determinada, el controlador selecciona la configuración alternativa con el wMaxPacketSize más pequeño que puede cumplir los requisitos de velocidad de datos.
Descriptor de formato tipo I
Para obtener más información sobre esta especificación, consulte FMT-2 2.3.1.6.
Se aplican las restricciones que se indican a continuación:
Formato | Tamaño de sublot | Resolución de bits |
---|---|---|
Tipo I formato PCM: | 1 <= bSubslotSize <= 4 | 8 <= bBitResolution <= 32 |
Tipo I formato PCM8: | bSubslotSize == 1 | bBitResolution == 8 |
Tipo I formato IEEE_FLOAT | bSubslotSize == 4 | bBitResolution == 32 |
Formatos de IEC61937 de tipo III: | bSubslotSize == 2 | bBitResolution == 16 |
Class-Specific descriptor de punto de conexión de datos de audio isócrono as
Para obtener más información sobre esta especificación, consulte ADC-2 4.10.1.2.
No se admite el indicador MaxPacketsOnly en el campo bmAttributes y se pasará por alto.
Los campos bmControls, bLockDelayUnits y wLockDelay se omitirán.
Solicitudes de clase y mensajes de datos de interrupción
El controlador admite un subconjunto de las solicitudes de control definidas en ADC-2, sección 5.2 y admite mensajes de datos de interrupción (ADC-2 6.1) para algunos controles. En la tabla siguiente se muestra el subconjunto que se implementa en el controlador.
Entidad | Supervisión | OBTENER CUR | SET CUR | GET RANGE | INTERRUPCIÓN |
---|---|---|---|---|---|
Origen del reloj | Control de frecuencia de muestreo | x | x | x | |
Selector de reloj | Control de selección de reloj | x | |||
Multiplicador de reloj | Control del Numerador | x | |||
Control del denominador | x | ||||
Terminal | Control del conector | x | x | ||
Unidad mezcladora | Control mezclador | x | x | x | |
Unidad de Selector | Control de Selector | x | x | ||
Unidad de características | Control de Silencio | x | x | x | |
Control de volumen | x | x | x | x | |
Control de ganancia automática | x | x | |||
Unidad de efecto | – | ||||
Unidad de procesamiento | – | ||||
Unidad de extensión | – |
Hay información adicional sobre los controles y solicitudes disponibles en las siguientes subsecciones.
Entidad de origen del reloj
Para obtener más información sobre esta especificación, consulte ADC-2 5.2.5.1.
Como mínimo, una entidad de origen del reloj debe implementar las solicitudes GET RANGE y GET CUR del control de frecuencia de muestreo (ADC-2 5.2.5.1.1) en hardware USB Audio 2.0 compatible.
La solicitud de control de frecuencia de muestreo GET RANGE devuelve una lista de subrangos (ADC-2 5.2.1). Cada subrango describe una frecuencia discreta o un intervalo de frecuencia. Se debe expresar una frecuencia de muestreo discreta estableciendo los campos MIN y MAX en la frecuencia correspondiente y RES en cero. Los subrangos individuales no deben superponerse. Si un subrango se superpone a uno anterior, el controlador lo omitirá.
Una entidad de origen de reloj que solo implementa una frecuencia fija no necesita implementar el control de frecuencia de muestreo llamado SET CUR. Implementa GET CUR, que devuelve la frecuencia fija y implementa GET RANGE, que notifica una sola frecuencia discreta.
Entidad de selección de reloj
Para obtener más información sobre esta especificación, consulte ADC-2 5.2.5.2.
El controlador USB Audio 2.0 no admite la selección del reloj. El controlador utiliza la Entidad de Origen del Reloj, que está seleccionada predeterminadamente y nunca emite una solicitud SET CUR del Control de Selector de Reloj. La solicitud GET CUR del control selector de reloj (ADC-2 5.2.5.2.1) debe implementarse en hardware USB Audio 2.0 compatible.
Unidad de características
Para obtener más información sobre esta especificación, consulte ADC-2 5.2.5.7.
El controlador solo admite un solo intervalo de volúmenes. Si la solicitud GET RANGE de control de volumen devuelve más de un intervalo, se omitirán los intervalos posteriores.
El intervalo de volumen expresado por los campos MIN y MAX debe ser un entero múltiplo del tamaño del paso especificado en el campo RES.
Si una unidad de características implementa controles de canal único y un control maestro para Silenciar o Volumen, el controlador usa los controles de canal único y omite el control maestro.
Información adicional para OEM e IHV
Los OEM y los IHV deben probar sus dispositivos existentes y nuevos con el controlador integrado suministrado.
No hay ninguna personalización específica de terceros asociada al controlador USB Audio 2.0 incorporado.
Esta entrada de archivo INF (proporcionada en una actualización de Windows Release 1703), se utiliza para identificar que el controlador integrado es un controlador de dispositivo genérico.
GenericDriverInstalled,,,,1
El controlador en caja se registra para los siguientes identificadores compatibles con usbaudio2.inf.
USB\Class_01&SubClass_00&Prot_20
USB\Class_01&SubClass_01&Prot_20
USB\Class_01&SubClass_02&Prot_20
USB\Class_01&SubClass_03&Prot_20
Consulte la especificación USB Audio 2.0 para ver los tipos de subclase.
Los dispositivos USB Audio 2.0 con MIDI (subclase 0x03 arriba) enumerarán la función MIDI como un dispositivo multifuncional independiente con usbaudio.sys (controlador USB Audio 1.0) cargado.
El controlador de clase USB Audio 1.0 registra este identificador compatible con wdma_usb.inf.
USB\Class_01
Y tiene estas exclusiones:
USB\Class_01&SubClass_00&Prot_20
USB\Class_01&SubClass_01&Prot_20
USB\Class_01&SubClass_02&Prot_20
USB\Class_01&SubClass_03&Prot_20
No se admite un número arbitrario de canales (mayor que ocho) en modo compartido debido a una limitación de la pila de audio de Windows.
Controladores y actualizaciones de IHV USB Audio 2.0
En el caso de controladores USB Audio 2.0 proporcionados por terceros de IHV, esos controladores seguirán siendo preferidos para sus dispositivos sobre nuestro controlador incorporado, a menos que actualicen su controlador para anular explícitamente este comportamiento y usar el controlador incorporado.
Descripciones del registro del conector de audio
A partir de la versión 1703 de Windows 10, los IHVs que crean dispositivos USB Audio Class 2.0 que tienen uno o más conectores tienen la capacidad de describir estos conectores al controlador de Audio Class 2.0 integrado. El controlador integrado utiliza la información del conector proporcionada al gestionar el KSPROPERTY_JACK_DESCRIPTION para este dispositivo.
La información de Jack se almacena en el Registro en la clave de instancia del dispositivo (clave HW).
A continuación se describe la configuración de información del conector de audio en el Registro:
REG_DWORD T<tid>_NrJacks # of the jack on this device
REG_DWORD T<tid>_J<n>_ChannelMapping Channel mask. The value is defined in ksmedia.h. e.g. SPEAKER_FRONT_RIGHT or KSAUDIO_SPEAKER_5POINT1_SURROUND
REG_DWORD T<tid>_J<n>_ConnectorType The enum value is define in EPcxConnectionType.
REG_DWORD T<tid>_J<n>_GeoLocation The enum value is define in EPcxGeoLocation.
REG_DWORD T<tid>_J<n>_GenLocation The enum value is define in EPcxGenLocation.
REG_DWORD T<tid>_J<n>_PortConnection The enum value is define in EPxcPortConnection.
REG_DWORD T<tid>_J<n>_Color The color needs to be represent by RGB like this: 0x00RRGGBB (NOT a COLORREF).
<tid> = id. de terminal (tal como se define en el descriptor)
<n> = Número de puerto (1 ~ n).
Convención para <tid> y <n> es:
- Base 10 (8, 9, 10 en lugar de 8, 9, a)
- Sin ceros iniciales
- n está basado en 1 (el primer jack es jack 1 en lugar de jack 0)
Por ejemplo:
T1_NrJacks, T1_J2_ChannelMapping, T1_J2_ConnectorType
Para obtener más información sobre el conector de audio, consulte estructura de KSJACK_DESCRIPTION.
Estos valores del Registro se pueden establecer de varias maneras:
Mediante INFs personalizados, que encapsulan el INF integrado con el fin de establecer estos valores.
Directamente desde el dispositivo de hardware a través de un descriptor de SO de Microsoft para dispositivos USB (consulte el ejemplo siguiente). Para obtener más información sobre cómo crear estos descriptores, consulte Descriptores de so de Microsoft para dispositivos USB.
Ejemplo de descriptores del sistema operativo de Microsoft para USB
Los siguientes descriptores del sistema operativo de Microsoft para USB contienen la asignación de canales y el color de un conector. El ejemplo es para un dispositivo no compuesto con un descriptor de características único.
El proveedor de IHV debe ampliarlo para que incluya cualquier otra información de la descripción del conector.
UCHAR Example2_MSOS20DescriptorSetForUAC2 [0x76] = {
//
// Microsoft OS 2.0 Descriptor Set Header
//
0x0A, 0x00, // wLength - 10 bytes
0x00, 0x00, // MSOS20_SET_HEADER_DESCRIPTOR
0x00, 0x00, 0x0?, 0x06, // dwWindowsVersion – 0x060?0000 for future Windows version
0x76, 0x00, // wTotalLength – 118 bytes // update later
//
// Microsoft OS 2.0 Registry Value Feature Descriptor
//
0x42, 0x00, // bLength - 66 bytes
0x04, 0x00, // wDescriptorType – 5 for Registry Property
0x04, 0x00, // wPropertyDataType - 4 for REG_DWORD
0x34, 0x00, // wPropertyNameLength – 52 bytes
0x54, 0x00, 0x30, 0x00, // Property Name - "T01_J01_ChannelMapping"
0x31, 0x00, 0x5f, 0x00,
0x4a, 0x00, 0x30, 0x00,
0x31, 0x00, 0x5f, 0x00,
0x43, 0x00, 0x68, 0x00,
0x61, 0x00, 0x6e, 0x00,
0x6e, 0x00, 0x65, 0x00,
0x6c, 0x00, 0x4d, 0x00,
0x61, 0x00, 0x70, 0x00,
0x70, 0x00, 0x69, 0x00,
0x6e, 0x00, 0x67, 0x00,
0x00, 0x00
0x04, 0x00, // wPropertyDataLength – 4 bytes
0x02, 0x00, 0x00, 0x00 // PropertyData - SPEAKER_FRONT_RIGHT
//
// Microsoft OS 2.0 Registry Value Feature Descriptor
//
0x2A, 0x00, // bLength - 42 bytes
0x04, 0x00, // wDescriptorType – 5 for Registry Property
0x04, 0x00, // wPropertyDataType - 4 for REG_DWORD
0x1C, 0x00, // wPropertyNameLength – 28 bytes
0x54, 0x00, 0x30, 0x00, // Property Name - "T01_J01_Color"
0x31, 0x00, 0x5f, 0x00,
0x4a, 0x00, 0x30, 0x00,
0x31, 0x00, 0x5f, 0x00,
0x43, 0x00, 0x6f, 0x00,
0x6c, 0x00, 0x6f, 0x00,
0x72, 0x00, 0x00, 0x00,
0x04, 0x00, // wPropertyDataLength – 4 bytes
0x00, 0x00, 0xff, 0x00 // PropertyData - 0xff0000 - RED }
Solución de problemas
Si el controlador no se inicia, se debe comprobar el registro de eventos del sistema. El controlador registra eventos que indican el motivo del error. Del mismo modo, los registros de audio se pueden recopilar manualmente siguiendo los pasos descritos en el artículo de registro web de Matthew van Eerde, Recopilación de registros de audio de la manera antigua. Si el error puede indicar un problema de controlador, notifiquelo mediante el Centro de opiniones descrito a continuación e incluya los registros.
Para obtener información sobre cómo leer registros del controlador de clase USB Audio 2.0 mediante archivos TMF complementarios, consulte Informar de problemas, con registros, y sugerir características utilizando el Centro de opiniones en el blog de Matthew van Eerde. Para obtener información general sobre cómo trabajar con archivos TMF, vea Mostrar un registro de seguimiento con un archivo TMF.
Para obtener información sobre el error "Servicios de audio que no responden" y el dispositivo de audio USB no funciona en Windows 10 versión 1703, consulte No reproducción de audio USB.
Centro de opiniones
Si experimenta un problema con este controlador, recopile registros de audio y, a continuación, siga los pasos descritos en Notificar problemas, con registros y sugerir características, con el Centro de opiniones para llamarla a nuestra atención.
Desarrollo de controladores
Este controlador de clase USB Audio 2.0 fue desarrollado por Thesycon y es compatible con Microsoft.