Compartir a través de


estructura de KSJACK_DESCRIPTION3

En la versión 22H2 y versiones posteriores de los sistemas operativos Windows, la KSJACK_DESCRIPTION3 estructura se puede usar para especificar y cambiar la configuración actual del conector.

Sintaxis

typedef struct _tagKSJACK_DESCRIPTION3
{
  ULONG              ConfigId; 

} KSJACK_DESCRIPTION3, *PKSJACK_DESCRIPTION3;

Miembros

ConfigId

La máscara de bits definida por el controlador o la enumeración que describe la configuración actual, cambiar este valor hace que audioendpointbuilder actualice la memoria caché para asegurarse de que el punto de conexión publicado coincide con la configuración actual.

Comentarios

Uso de KSJACK_DESCRIPTION3 para comunicar los cambios del dispositivo de audio

El sistema de audio de Windows almacena en caché las funcionalidades del dispositivo de audio durante la creación del punto de conexión de audio. Estos valores almacenados en caché son para funcionalidades como la presencia de un motor de audio HW, compatibilidad con formato, identificador de contenedor, características de tamaño de búfer, etc. Estos valores almacenados en caché se conservan durante la vida útil de la instalación de Windows. Solo se actualizan cuando el controlador de audio se actualiza o durante una actualización del sistema operativo.

Con KSJACK_DESCRIPTION3, el sistema de audio de Windows proporciona un mecanismo para que el controlador de audio solicite que se descarten y actualicen todos los valores almacenados en caché. La solicitud se puede desencadenar mediante cambios en las funcionalidades del dispositivo de audio, como las restricciones de recursos.

Siempre que el controlador cambie el contenido de KSJACK_DESCRIPTION3 en tiempo de ejecución, el controlador desencadenará el evento de KSEVENT_PINCAPS_JACKINFOCHANGE existente.

El sistema de audio de Windows mantiene el último valor configId notificado almacenado en caché en el punto de conexión de audio. El valor configId se recupera en respuesta a KSEVENT_PINCAPS_JACKINFOCHANGE evento y durante el procesamiento normal del punto de conexión de audio en el arranque del sistema, el reinicio del servicio Audio Endpoint Builder, la actualización del controlador de audio o los cambios de estado de la interfaz para el punto de conexión.

Si el valor configId recuperado difiere del valor almacenado anteriormente, el sistema de audio de Windows descartará todas las funcionalidades de punto de conexión previamente almacenadas en caché y las actualizará.

El uso recomendado es definir varias configuraciones de punto de conexión de audio dentro del controlador controlado por el valor configId (máscara de bits o enumeración). Por ejemplo, ConfigId de 1 puede indicar la presencia de un nodo del motor de audio, mientras que ConfigId 2 no notificaría un nodo del motor de audio. El configId en uso del controlador se comparte con el sistema de audio de Windows a través de KSPROPERTY_JACK_DESCRIPTION3 y actúa para sincronizar el punto de conexión con las funcionalidades almacenadas en caché por el sistema de audio de Windows.

El valor de ConfigId es opaco para Windows. El controlador de audio podría usar una marca de tiempo o un valor de incremento elegido en tiempo de ejecución en lugar de una máscara de bits o enumeración como se sugirió anteriormente. Esta estrategia no se recomienda, ya que puede dar lugar a actualizaciones de punto de conexión innecesarias durante el arranque o cambios de interfaz para sincronizar el último valor configId almacenado con el valor recién notificado, incluso cuando las funcionalidades del punto de conexión no cambian. Este enfoque también puede aumentar las posibilidades de que el controlador y Windows no se sincronicen, lo que puede provocar errores de reproducción de audio.

El mecanismo que se usa para actualizar los valores almacenados en caché en el punto de conexión cuando configId cambia es el mismo que se usa para las actualizaciones del sistema operativo y el Novedades del controlador. Se crea un nuevo punto de conexión con un identificador diferente que contendrá los valores almacenados en caché actualizado que coinciden con la nueva configuración de ConfigId para el punto de conexión, la configuración de usuario se copia del punto de conexión anterior al nuevo punto de conexión y, por último, se elimina el punto de conexión anterior. Para obtener más información, en el proceso de migración de puntos de conexión de audio en las actualizaciones del sistema operativo, consulte Actualizaciones del sistema operativo.

Requisitos

Versión

Disponible en la versión 22H2 y en los sistemas operativos Windows posteriores.

Encabezado

Ksmedia.h (incluye Ksmedia.h)

Vea también

KSJACK_DESCRIPTION

KSPROPERTY_JACK_DESCRIPTION3

IKsJackDescription2::GetJackDescription2

Cambio de formato dinámico

Actualizaciones del sistema operativo