Controladores usb audio 2.0
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 miniporte de clase de puerto de 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.
Architecture
El controlador usbaudio2.sys se ajusta a la arquitectura más amplia del audio USB de Windows, 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 universal del bus serie, 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 USB oficial, 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.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 función 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. Opcionalmente, la ruta de acceso del reloj puede incluir 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
- IN y OUT sincrónicos
- IN y OUT adaptables
Para el caso OUT asincrónico, el controlador solo admite comentarios explícitos. Un punto de conexión de comentarios 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 de adaptive IN, el controlador no admite un punto de conexión de reenvío de fuente. 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 FMT-2.0 sección 2.3.1.1. Esto significa que la desviación del tamaño real del paquete del tamaño nominal no debe superar +/- una ranura de audio (ranura de audio = muestras de recuento de canales).
Descriptores de
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). 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 de AS de Class-Specific
Para 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 otra configuración alternativa en orden ascendente en el hardware compatible de AUDIO USB 2.0.
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.3.1.6).
En el caso de los formatos type I, se debe establecer exactamente un bit en uno en el campo bmFormats del descriptor de la interfaz AS. De lo contrario, el controlador omitirá el formato.
Para guardar el 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 de punto de conexión de datos isócrono. Para una velocidad 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 tipo de tipo de formato I
Para 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 subslot | Resolución de bits |
---|---|---|
Formato PCM de tipo I: | 1 <= bSubslotSize <= 4 | 8 <= bBitResolution <= 32 |
Formato PCM8 de tipo I: | bSubslotSize == 1 | bBitResolution == 8 |
Escriba I IEEE_FLOAT formato: | 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 la marca MaxPacketsOnly en el campo bmAttributes y se omitirá.
Se omitirán los campos bmControls, bLockDelayUnits y wLockDelay.
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 | Control | OBTENER CUR | SET CUR | GET RANGE | INTERRUMPIR |
---|---|---|---|---|---|
Origen del reloj | Control de frecuencia de muestreo | x | x | x | |
Selector de reloj | Control selector de reloj | x | |||
Multiplicador de reloj | Control numerador | x | |||
Control denominador | x | ||||
Terminal | Control de conector | x | x | ||
Unidad mezcladora | Control Mezclador | x | x | x | |
Unidad de selector | Selector Control | x | x | ||
Unidad de características | Silenciar control | 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 | – |
En las subsecciones siguientes encontrará información adicional sobre los controles y las solicitudes.
Entidad de origen clock
Para obtener más información sobre esta especificación, consulte ADC-2 5.2.5.1.
Como mínimo, una entidad de origen de reloj debe implementar el control de frecuencia de muestreo GET RANGE y las solicitudes GET CUR (ADC-2 5.2.5.1.1) en hardware USB Audio 2.0 compatible.
La solicitud GET RANGE control de frecuencia de muestreo 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 respectiva 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 implementa una sola frecuencia fija solo no necesita implementar el control de frecuencia de muestreo SET CUR. Implementa GET CUR, que devuelve la frecuencia fija y implementa GET RANGE, que informa de una sola frecuencia discreta.
Entidad selector 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 usa la entidad de origen del reloj, que está seleccionada de forma predeterminada y nunca emite una solicitud SET CUR del control del 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 único intervalo de volúmenes. Si la solicitud GET RANGE del 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ística 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 IHVs
Los OEM y los IHD deben probar sus dispositivos existentes y nuevos en el controlador incluido.
No hay ninguna personalización de asociado específica asociada al controlador USB Audio 2.0 en caja.
Esta entrada de archivo INF (proporcionada en una actualización de La versión 1703 de Windows) se usa para identificar que el controlador incluido 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 los tipos de subclase.
Los dispositivos USB Audio 2.0 con MIDI (subclase 0x03 anterior) enumerarán la función MIDI como un dispositivo independiente de varias funciones 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 los controladores IHV proporcionados por controladores USB Audio 2.0 de terceros, esos controladores seguirán siendo preferidos para sus dispositivos a través de nuestro controlador en la caja a menos que actualicen su controlador para invalidar explícitamente este comportamiento y usar el controlador en la caja.
Descripciones del Registro de Jack de audio
A partir de Windows 10 versión 1703, los IHV que crean dispositivos USB Audio Class 2.0 que tienen uno o varios conectores tienen la capacidad de describir estos conectores al controlador de la clase audio 2.0 integrada. El controlador en caja usa la información de toma proporcionada al controlar 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 describen los valores 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 jack (1 ~ n).
La 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 KSJACK_DESCRIPTION.
Estos valores del Registro se pueden establecer de varias maneras:
Mediante instrucciones INF personalizadas, que encapsulan el INF integrado con el fin de establecer estos valores.
Directamente por el dispositivo de hardware a través de un descriptor de sistema operativo de Microsoft para dispositivos USB (consulte el ejemplo siguiente). Para obtener más información sobre cómo crear estos descriptores, vea Descriptores de sistema operativo de Microsoft para dispositivos USB.
Ejemplo de descriptores de sistema operativo de Microsoft para USB
El siguiente ejemplo de descriptores de sistema operativo de Microsoft para USB contiene la asignación de canales y el color de un conector. El ejemplo es para un dispositivo no compuesto con un único descriptor de características.
El proveedor de IHV debe extenderlo para contener cualquier otra información para la descripción del jack.
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 que se describe a continuación e incluya los registros.
Para obtener información sobre cómo leer registros para el controlador de clase USB Audio 2.0 mediante archivos TMF complementarios, vea Notificar problemas, con registros y sugerir características, con el Centro de opiniones en el registro web 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 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 prestarle atención.
Desarrollo de controladores
Este controlador de clase USB Audio 2.0 fue desarrollado por Thesycon y es compatible con Microsoft.