KSRTAUDIO_HWREGISTER estructura (ksmedia.h)

La estructura KSRTAUDIO_HWREGISTER especifica la dirección y la información adicional sobre un registro de hardware solicitado por el cliente. El controlador lo rellena en respuesta a una solicitud de registro a través de KSPROPERTY_RTAUDIO_POSITIONREGISTER y KSPROPERTY_RTAUDIO_CLOCKREGISTER.

Sintaxis

typedef struct {
  PVOID     Register;
  ULONG     Width;
  ULONGLONG Numerator;
  ULONGLONG Denominator;
  ULONG     Accuracy;
} KSRTAUDIO_HWREGISTER, *PKSRTAUDIO_HWREGISTER;

Miembros

Register

Puntero al registro. Este miembro especifica la dirección virtual en la que se asigna el registro.

Width

Especifica el ancho, en bits, del registro. El valor de este miembro puede ser 32 o 64.

Numerator

Especifica el numerador de la frecuencia con la que se incrementa el registro de reloj. Vea los comentarios siguientes. .

Denominator

Especifica el denominador de la frecuencia a la que se incrementa el registro de reloj. Vea los comentarios siguientes. .

Accuracy

Especifica la precisión del registro de posición o reloj. Consulte la siguiente sección Comentarios.

Comentarios

En el caso de las solicitudes de registro de posición de hardware a través de KSPROPERTY_RTAUDIO_POSITIONREGISTER el controlador rellena los miembros Register, Width y Accuracy , ya que los demás miembros son específicos de los registros de reloj. Para las solicitudes de registro de reloj de hardware a través de KSPROPERTY_RTAUDIO_CLOCKREGISTER el controlador rellena toda la estructura.

Un registro de reloj es un contador que se incrementa con la frecuencia del reloj de hardware interno que controla el bus interno del dispositivo de audio. El registro se incrementa en uno con cada tic del reloj. El registro comienza a contar cuando el dispositivo se enciende y continúa ejecutándose hasta que el dispositivo se apaga. El registro de reloj lo usa el software para sincronizar dos o más dispositivos con relojes de hardware independientes.

El numerador de miembros y el denominador juntos especifican la frecuencia con la que se incrementa el registro del reloj. La frecuencia se calcula dividiendo numerador por denominador.

El registro del reloj se incrementa con la frecuencia del reloj interno del dispositivo de audio. Esta es la frecuencia que el dispositivo de audio usa normalmente para reloj de eventos en su bus interno o en el vínculo de códec externo. El hardware deriva las frecuencias de la muestra de audio dividiendo la frecuencia de reloj interna.

El dispositivo de audio puede derivar su reloj interno de un oscilador de cristal en chip o una señal de reloj externa. Por ejemplo, si un dispositivo deriva un reloj interno de 16,5 MHz dividiendo un reloj externo de 33 MHz por dos, el numerador y el denominador se pueden especificar como 33 000 000 y 2, respectivamente.

El parámetro Accuracy especifica el error máximo en una lectura de registro de posición o reloj. Esto es básicamente una representación de la tasa de actualización del registro. En el caso de los registros de reloj, el parámetro Accuracy indica el número de tics de reloj entre las actualizaciones de registro. En el ejemplo anterior de un reloj interno de 16,5 MHz, si el registro del reloj se actualiza cada 4 relojes, el parámetro Accuracy se establecería en 4 porque el registro debe representar la precisión del registro del reloj en unidades de tics del reloj.

Para los registros de posición, el parámetro Accuracy representa la precisión del registro de posición en unidades de bytes. Por ejemplo, el tamaño del fotograma de audio para una secuencia PCM de 2 canales y de 16 bits es de 4 bytes. Si el registro de posición incrementa (en dos veces el tamaño del fotograma) una vez cada segundo tic del reloj de muestra, el valor de precisión es de 8 bytes. Si el registro de posición incrementa (en cuatro veces el tamaño del fotograma) una vez cada cuarta tic del reloj de muestra, el valor de precisión es de 16 bytes, etc.

Requisitos

Requisito Value
Cliente mínimo compatible Disponible en Windows Vista y en sistemas operativos Windows posteriores.
Encabezado ksmedia.h

Consulte también

KSPROPERTY_RTAUDIO_CLOCKREGISTER

KSPROPERTY_RTAUDIO_POSITIONREGISTER

KSRTAUDIO_HWREGISTER_PROPERTY